ug4
ug Namespace Reference

the ug namespace More...

Namespaces

 bridge
 
 ConnectionViewer
 
 ConvectionDiffusionPlugin
 
 detail
 
 DocuGen
 
 domain_wrappers
 
 fieldutil
 
 grid_unit_tests
 
 hex_rules
 
 luashell
 
 node_tree
 
 oct_rules
 
 prism_rules
 
 promesh
 
 pyra_rules
 
 script
 
 shared_rules
 
 SmallStrainMechanics
 
 TemplatePlugin
 
 tet_rules
 
 vrl
 

Classes

struct  AABox
 
class  AbsoluteMarking
 marks elements above an absolute threshold (based on S. Reisters idea) More...
 
class  ActiveSet
 Active Set method. More...
 
class  AdaptionSurfaceGridFunction
 
class  AdaptiveRegularRefiner_MultiGrid
 Specialization of IRefiner for adaptive multigrid refinement with closure. More...
 
struct  AdjustEdgeLengthDesc
 
class  AgglomeratingBase
 
class  AgglomeratingIterator
 
class  AgglomeratingPreconditioner
 
class  AgglomeratingSolver
 
class  AlgebraDebugWriter
 Debug writer for connection viewer (based on algebraic information + vector positions only) More...
 
class  AlgebraicConnection
 
class  AlgebraicConvCheck
 
struct  AlgebraID
 this type is used to identify distributed objects. More...
 
class  AlgebraLayouts
 Extends the HorizontalAlgebraLayouts by vertical layouts. More...
 
class  AlgebraType
 class describing the type of an algebra More...
 
class  AlphaMat_Expression
 
class  AlphaMatVec_X_Expression
 
class  AlphaVec_Expression
 
class  AnalyzingSolver
 
class  AnisotropicBalanceWeights
 The higher the volume, the higher the weight when anisotropic refinement is used... More...
 
class  ApproximationSpace
 base class for approximation spaces without type of algebra or dof distribution More...
 
class  Archivar
 
class  AssembledLinearOperator
 matrix operator based on the assembling of a problem More...
 
class  AssembledMultiGridCycle
 geometric multi grid preconditioner More...
 
class  AssembledOperator
 
class  AssembledTransformingSmoother
 
class  AssemblingTuner
 The AssemblingTuner class combines tools to adapt the assembling routine. More...
 
class  AssocElemIter
 Iterator that allows to traverse associated elements of a given element. More...
 
class  AttachedElementList
 A linked list of elements living in an attachment. More...
 
class  AttachedElementListIterator
 A special iterator which allows to iterate over elements in a AttachedElementList. More...
 
class  Attachment
 A generic specialization of IAttachment. More...
 
struct  attachment_info_traits
 
struct  attachment_io_traits
 
struct  attachment_io_traits< Attachment< bool > >
 
struct  attachment_io_traits< Attachment< std::vector< T > > >
 serialization for std::vector<T> with type T - e. g. std::vector<bool> More...
 
struct  attachment_io_traits< Attachment< vector1 > >
 
struct  attachment_io_traits< Attachment< vector2 > >
 
struct  attachment_io_traits< Attachment< vector3 > >
 
struct  attachment_io_traits< Attachment< vector4 > >
 
struct  attachment_reduce_traits
 methods defined in those traits are used by ComPol_AttachmentReduce More...
 
struct  attachment_reduce_traits< double >
 
struct  attachment_reduce_traits< float >
 
struct  attachment_reduce_traits< MathVector< 1 > >
 
struct  attachment_reduce_traits< MathVector< 2 > >
 
struct  attachment_reduce_traits< MathVector< 3 > >
 
struct  attachment_reduce_traits< MathVector< 4 > >
 
struct  attachment_reduce_traits< std::vector< number > >
 
class  attachment_traits
 define the interface that enables you to use your own types as element-types in an AttachmentPipe. More...
 
class  attachment_traits< Edge *, ElementStorage< Edge > >
 
class  attachment_traits< Face *, ElementStorage< Face > >
 
class  attachment_traits< Vertex *, ElementStorage< Vertex > >
 
class  attachment_traits< Volume *, ElementStorage< Volume > >
 
struct  attachment_value_traits
 define reference and const reference types for attachment values. More...
 
struct  attachment_value_traits< bool >
 specialization of attachment_value_traits for the bool type More...
 
class  AttachmentAccessor
 Used to access data that has been attached to an attachment pipe. More...
 
class  AttachmentDataContainer
 A generic specialization of IAttachedDataContainer. More...
 
struct  AttachmentEntry
 This struct is used by AttachmentPipe in order to manage its attachments. More...
 
class  AttachmentPipe
 Handles data which has been attached to the pipe using callbacks for the element. More...
 
class  AttachmentUnequal
 This class can be used in Element callbacks. More...
 
class  AutoLinearSolver
 linear solver using abstract preconditioner interface More...
 
class  AverageComponent
 
class  BackwardGaussSeidel
 Gauss-Seidel preconditioner for the 'backward' ordering of the dofs. More...
 
class  BalanceWeightsLuaCallback
 
class  BalanceWeightsRefMarks
 
class  Base64FileWriter
 File writer allowing selective base64 encoding of arbitrary data. More...
 
class  BaseLSFS
 static interface for trial spaces More...
 
class  BaseReferenceMapping
 Base class for Reference mappings helping to implement interface. More...
 
class  BDF
 
class  BiCGStab
 the BiCGStab method as a solver for linear operators More...
 
class  BinaryBuffer
 A Buffer for binary data. More...
 
class  BinaryStream
 a specialzation of std::iostream, that uses a More...
 
class  BinaryStreamBuffer
 A special version of a std::streambuf, writes data directly into a buffer that is accessible at any time. More...
 
struct  BinomialCoefficient
 
struct  BinomialCoefficient< n, 0 >
 
struct  BinomialCoefficient< n,-1 >
 
struct  BinomialCoefficient< n,-2 >
 
struct  BinomialCoefficient< n,-3 >
 
struct  BinomialCoefficient< n,-4 >
 
struct  block_multiply_traits
 
struct  block_multiply_traits< DenseMatrix< T >, DenseMatrix< T > >
 
struct  block_multiply_traits< DenseMatrix< T1 >, DenseVector< T2 > >
 
struct  block_multiply_traits< number, number >
 
struct  block_multiply_traits< number, T >
 
struct  block_multiply_traits< T, number >
 
struct  block_multiply_traits< T1, T2 >
 
struct  block_traits
 
struct  block_traits< DenseMatrix< FixedArray2< number, 1, 1, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, 2, 2, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, 3, 3, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< number, TBlockSize, TBlockSize, TOrdering > > >
 
struct  block_traits< DenseMatrix< FixedArray2< TValue, TBlockSize, TBlockSize, TOrdering > > >
 
struct  block_traits< DenseMatrix< T > >
 
struct  block_traits< DenseMatrix< VariableArray2< number, TOrdering > > >
 
struct  block_traits< DenseMatrix< VariableArray2< TValue, TOrdering > > >
 
struct  block_traits< DenseVector< T > >
 
struct  block_traits< number >
 
struct  block_traits< T >
 
struct  block_traits< vector< int > >
 vector<int> has a variable size More...
 
class  BlockGaussSeidel
 
class  BlockGaussSeidelIterative
 
class  BlockSliceIndexView
 
class  BoolMarker
 Allows to mark elements. More...
 
class  BoundedEquidistantLagrange1D
 
class  BoxPriorityQueue
 updateable priority queue class. this priority queue works on an external array of elements T. More...
 
class  BoxPriorityQueue2
 updateable priority queue class. this priority queue works on an external array of elements T. More...
 
class  CG
 the CG method as a solver for linear operators More...
 
class  cgraph
 
struct  ChainInfo
 
class  ClusterElementStacks
 
class  CmpVrtsByHash
 Can be used to compare vertices of their grids through their hash-value. More...
 
class  CombinedLinearIterator
 
class  CommonLocalDoFSet
 
class  CommunicationScheme
 CRTP Base class for communications on layout/interfaces. More...
 
class  CommunicationScheme< TDerived, bool >
 CRTP Base class for communications on layout/interfaces. More...
 
class  CompareByAttachment
 Instances can be used as compare operators, e.g., for std::sort. More...
 
struct  CompareDegree
 help class to provide compare operator for indices based on their degree More...
 
class  ComPol_AdjustType
 
class  ComPol_AttachmentReduce
 Performs reduce operations on the specified attachment. More...
 
class  ComPol_BoolMarker_AddMarks
 adds marking at extracting side More...
 
class  ComPol_BoolMarker_RemoveMarks
 removes marks at extracting side, if no mark was received More...
 
class  ComPol_BroadcastCoarsenMarks
 
class  ComPol_BroadcastRefineMarks
 
class  ComPol_CheckConsistency
 Communication Policy to check consistency of a vector. More...
 
class  ComPol_CheckDistributedParentStates
 
class  ComPol_CopyAttachment
 copies values from a specified attachment to a stream and back. More...
 
class  ComPol_EnableSelectionStateBits
 
class  ComPol_GatherSurfaceStates
 adds marking at extracting side More...
 
class  ComPol_GatherVecAttachment
 Gathers the values stored in vector-attachments. More...
 
class  ComPol_InterfaceStatus
 Exchanges information on the interface-status of connected elements. More...
 
class  ComPol_MatAddRowsOverlap0
 Communication Policy to copy slave couplings to master row. More...
 
class  ComPol_MatAddSetZeroInnerInterfaceCouplings
 Comm-Pol to add matrix rows of inner-interface couplings. More...
 
class  ComPol_MatDistributeDiag
 Communication Policy sending fractions to. More...
 
class  ComPol_NewConstrainedVerticals
 
class  ComPol_Selection
 
class  ComPol_Subset
 
class  ComPol_SynchronizeDistInfos
 Communicates the distribution infos through existing interfaces. More...
 
class  ComPol_VecAdd
 Communication Policy to add values of a vector. More...
 
class  ComPol_VecAddSetZero
 Communication Policy to add values of a vector and reset value to zero on sending interface. More...
 
class  ComPol_VecCopy
 Communication Policy to copy values of a vector. More...
 
class  ComPol_VecScaleAdd
 Communication Policy to add values of a vector. More...
 
class  ComPol_VecScaleCopy
 Communication Policy to copy scaled values of a vector. More...
 
class  ComPol_VecSubtract
 Communication Policy to subtract values of a vector. More...
 
class  ComPol_VecSubtractOnlyOneSlave
 Communication Policy to subtract only one slave value per master of a vector. More...
 
class  ComponentGaussSeidel
 ComponentGaussSeidel Preconditioner. More...
 
class  CompositeConvCheck
 
struct  ConnectedToOneMarkedVrt
 
class  ConsiderAll
 callback that always returns true More...
 
class  ConsiderNone
 callback that always returns false More...
 
class  ConsistencyCheckClass
 
class  ConsistencyCheckClassSend
 
class  ConsistencyCheckClassSend< TVec, bool >
 
class  const_localMatrix_from_mat_and_array
 
class  const_ntree_element_iterator
 this iterator is used by the ntree class to provide access to the elements of a given node More...
 
class  ConstantDamping
 constant damping factor More...
 
class  ConstAttachedElementListIterator
 A special iterator which allows to iterate over elements in a AttachedElementList. More...
 
class  ConstGenericGridObjectIterator
 Use this class as a tool to create const_iterators to your own geometric objects. More...
 
class  ConstMatrixRow
 
class  ConstrainedEdge
 This edge is a sub-edge of a. More...
 
class  ConstrainedFace
 This class stores the constraining object. More...
 
class  ConstrainedLinearIterator
 
class  ConstrainedQuadrilateral
 a quadrilateral constrained by another object. More...
 
class  ConstrainedTriangle
 a triangle constrained by another object. More...
 
class  ConstrainedVertex
 A vertex appearing on edges or faces. More...
 
class  ConstrainingEdge
 contains elements of type More...
 
class  ConstrainingFace
 This class is used to store constrained geometric objects. More...
 
class  ConstrainingQuadrilateral
 a quadrilateral constraining other objects. More...
 
class  ConstrainingTriangle
 a triangle constraining other objects. More...
 
struct  constraint_traits
 
struct  constraint_traits< Edge >
 
struct  constraint_traits< Face >
 
struct  constraint_traits< Quadrilateral >
 
struct  constraint_traits< Triangle >
 
struct  constraint_traits< Vertex >
 
struct  ConstructGridOfSCVFWrapper
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 1 >
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 2 >
 
struct  ConstructGridOfSCVFWrapper< TFVGeom, 3 >
 
struct  ConstructGridOfSCVWrapper
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 1 >
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 2 >
 
struct  ConstructGridOfSCVWrapper< TFVGeom, 3 >
 
class  ConstScalarSubVectorAdapter
 
class  ConstUserMatrix
 constant matrix user data More...
 
class  ConstUserNumber
 constant scalar user data More...
 
class  ConstUserTensor
 constant tensor user data More...
 
class  ConstUserVector
 constant vector user data More...
 
class  ConvectionShapesFullUpwind
 
class  ConvectionShapesNoUpwind
 
class  ConvectionShapesPartialUpwind
 
class  ConvectionShapesWeightedUpwind
 
class  CopyAttachmentHandler
 handler for attachments in a multi-grid More...
 
class  CplUserData
 Type based UserData. More...
 
struct  CPUAlgebra
 
struct  CPUBlockAlgebra
 
struct  CPUVariableBlockAlgebra
 
struct  crfv_traits
 
struct  crfv_traits< 1, 1 >
 
struct  crfv_traits< 1, 2 >
 
struct  crfv_traits< 2, 2 >
 
struct  crfv_traits< 2, 3 >
 
struct  crfv_traits< 3, 3 >
 
struct  crfv_traits< 3, 4 >
 
class  CRFVGeometry
 
class  CrouzeixRaviartBase
 Crouzeix - Raviart Set. More...
 
class  CrouzeixRaviartElemTransfer
 
class  CrouzeixRaviartLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  CrouzeixRaviartLSFS< ReferenceHexahedron >
 
class  CrouzeixRaviartLSFS< ReferencePrism >
 
class  CrouzeixRaviartLSFS< ReferencePyramid >
 
class  CrouzeixRaviartLSFS< ReferenceQuadrilateral >
 
class  CrouzeixRaviartLSFS< ReferenceTetrahedron >
 
class  CrouzeixRaviartLSFS< ReferenceTriangle >
 
class  CuckooClock
 
class  CUDAManager
 
class  CustomQuadrilateral
 Concrete types share this base-type. It is not intended for direct use. More...
 
class  CustomTriangle
 Concrete types share this base-type. It is not intended for direct use. More...
 
class  CustomVertexGroup
 this class can be used if one wants to create a custom element from a set of vertices. More...
 
class  CylinderCutProjector
 Refines linearily except for when a refined edge intersects the given cylinder. More...
 
class  CylinderProjector
 Projects new vertices onto a sphere during refinement. More...
 
class  DarcyVelocityLinker
 Hard Coded Linker for the Darcy velocity. More...
 
class  DataEvaluator
 helper class to evaluate data evaluation for local contributions during assembling More...
 
class  DataExport
 Data export. More...
 
class  DataImport
 Data import. More...
 
class  DebugID
 
class  DebugIDManager
 
class  DebugIterator
 Debugging iterator. More...
 
class  DebugWritingObject
 
class  DefaultAlgebra
 Singleton, providing the current default algebra. More...
 
class  DegeneratedLayerManager
 Gegenerated layer subset manager. More...
 
class  DelaunayDebugSaver
 
class  DelaunayInfo
 
class  DenseMatrix
 
struct  DenseMatrixFromSparseMatrix
 
class  DenseMatrixInverse
 
class  DenseVector
 
class  DependentUserData
 Dependent UserData. More...
 
class  DiagVanka
 Diagvanka Preconditioner, description see above diagvanka_step function. More...
 
class  DimCRFVGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume with Crouzeix-Raviart elements. More...
 
class  DimFEGeometry
 
class  DimFV1Geometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  DimFV1IBGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  DimFVGeometry
 Geometry and shape functions for any order Vertex-Centered Finite Volume. More...
 
class  DimHFV1Geometry
 
class  DimLocalDoFSet
 
class  DimReferenceElement
 dimension dependent base class for reference elements More...
 
class  DimReferenceMapping
 virtual base class for reference mappings More...
 
class  DimReferenceMappingWrapper
 wrapper of a ReferenceElementMapping into the virtual base class More...
 
class  DirichletBoundary
 
class  DistInfoSupplier
 Automatically attaches ADistInfo to all elements of a grid. More...
 
class  DistributedGridManager
 manages the layouts and interfaces which are associated with a distributed grid. More...
 
class  DistroAdjuster
 
class  DoFCount
 
class  DoFDistribution
 
class  DoFDistributionInfo
 
class  DoFDistributionInfoProvider
 
class  DoFIndexStorage
 
class  Domain
 
struct  domain_traits
 
struct  domain_traits< 0 >
 
struct  domain_traits< 1 >
 
struct  domain_traits< 2 >
 
struct  domain_traits< 3 >
 
class  DomainBalanceWeights
 
class  DomainCommunicationCostWeights
 
class  DomainDiscretization
 domain discretization implementing the interface More...
 
class  DomainDiscretizationBase
 generic domain discretization implementing the interface More...
 
class  DomainInfo
 Describes the contents of a domain. More...
 
class  DomainLoadBalancer
 A small wrapper for LoadBalancer which adds comfort methods to balance and distribute domains. More...
 
class  DomainPartitioner
 
class  DomainRayTracer
 TEMPORARY QUICK HACK! DON'T USE! WILL BE REPLACED SOON! More...
 
class  DualGraphNeighborCollector
 
class  Edge
 Base-class for edges. More...
 
class  EdgeDescriptor
 Can be used to store information about an edge and to construct an edge. More...
 
class  EdgeVertices
 holds the vertices of an Edge or an EdgeDescriptor. More...
 
class  element_list_traits
 Class for computing integral properties of geometric objects types in lists. More...
 
class  ElementCallback
 
class  ElementGaussSeidel
 ElementGaussSeidel Preconditioner. More...
 
struct  ElementSideRayIntersectionWrapper
 
struct  ElementSideRayIntersectionWrapper< TRefElem, 2, 2 >
 
struct  ElementSideRayIntersectionWrapper< TRefElem, 3, 3 >
 
class  ElementStorage
 This struct is used to hold GridObjects and their attachment pipes. More...
 
struct  ElementStorageSelector
 Helper class to access the correct element storage from its element type. More...
 
struct  ElementStorageSelector< Edge >
 
struct  ElementStorageSelector< Face >
 
struct  ElementStorageSelector< Vertex >
 
struct  ElementStorageSelector< Volume >
 
class  ElemProlongationBase
 
class  ElemRestrictionBase
 
class  EmptyOStream
 a specialization of std::ostream, which doesn't write anything More...
 
class  EmptyStreamBuffer
 Used by EmptyStream, to send tokens into nirvana! More...
 
struct  EmptyType
 
struct  end_boost_list
 
class  EnergyConvCheck
 
class  EquidistantLagrange1D
 
class  EquilibrationMarkingStrategy
 
class  ExplicitGridFunctionGradient
 
class  ExplicitGridFunctionValue
 This grid function can be used as an explicit input (w/o additional derivativ) More...
 
class  Face
 Faces are 2-dimensional objects. More...
 
struct  face_type_traits
 
struct  face_type_traits< 1 >
 
struct  face_type_traits< 2 >
 
struct  face_type_traits< 3 >
 
class  FaceDescriptor
 Can be queried for the edges and vertices of a face. More...
 
class  FaceVertices
 
struct  Factorial
 
struct  Factorial< 1 >
 
class  Factory
 A factory class which creates instances given a class-name. More...
 
class  FEGeometry
 
class  FetiLayouts
 Auxiliary class for handling of "FETI layouts". More...
 
class  FETISolver
 operator implementation of the FETI-DP solver More...
 
class  Field
 
class  FileReaderASC
 
class  FixedArray1
 
class  FixedArray1< T, 1 >
 
class  FixedArray1< T, 2 >
 
class  FixedArray1< T, 3 >
 
class  FixedArray1< T, 4 >
 
class  FixedArray2
 
class  FixedConvergenceCheck
 
class  Flag
 Helps maintaining, activating and deactivating a set of flags from an enum. More...
 
class  FlexGaussQuadrature
 flexible order gauss quadrature More...
 
class  FlexLagrangeLSFS
 Lagrange Shape Function Set without virtual functions and flexible order. More...
 
class  FlexLagrangeLSFS< ReferenceEdge >
 specialization for Edges More...
 
class  FlexLagrangeLSFS< ReferenceHexahedron >
 
class  FlexLagrangeLSFS< ReferencePrism >
 
class  FlexLagrangeLSFS< ReferenceQuadrilateral >
 
class  FlexLagrangeLSFS< ReferenceTetrahedron >
 
class  FlexLagrangeLSFS< ReferenceTriangle >
 
class  FlexLagrangeLSFS< ReferenceVertex >
 specialization for Edges More...
 
class  FracturedMediaRefiner
 
struct  FractureInfo
 Used to tell ExpandLayers_... which subsets should be regarded as layers. More...
 
class  FunctionGroup
 
class  FunctionIndexMapping
 describes a mapping between two local index sets More...
 
class  FunctionPattern
 Describes the setup of discrete functions on a SubsetHandler. More...
 
struct  fv1_dim_traits
 Traits for Finite Volumes in a dimension. More...
 
struct  fv1_dim_traits< 1, 1 >
 
struct  fv1_dim_traits< 1, 2 >
 
struct  fv1_dim_traits< 1, 3 >
 
struct  fv1_dim_traits< 2, 2 >
 
struct  fv1_dim_traits< 2, 3 >
 
struct  fv1_dim_traits< 3, 3 >
 
struct  fv1_traits
 Traits for Finite Volumes (dummy implementation) More...
 
struct  fv1_traits< ReferenceEdge, 1 >
 
struct  fv1_traits< ReferenceEdge, 2 >
 
struct  fv1_traits< ReferenceEdge, 3 >
 
struct  fv1_traits< ReferenceHexahedron, 3 >
 
struct  fv1_traits< ReferenceOctahedron, 3 >
 
struct  fv1_traits< ReferencePrism, 3 >
 
struct  fv1_traits< ReferencePyramid, 3 >
 
struct  fv1_traits< ReferenceQuadrilateral, 2 >
 
struct  fv1_traits< ReferenceQuadrilateral, 3 >
 
struct  fv1_traits< ReferenceTetrahedron, 3 >
 
struct  fv1_traits< ReferenceTriangle, 2 >
 
struct  fv1_traits< ReferenceTriangle, 3 >
 
struct  fv1_traits_ReferenceEdge
 
struct  fv1_traits_ReferenceFace
 
struct  fv1_traits_ReferenceFace2d
 
struct  fv1_traits_ReferenceFace3d
 
struct  fv1_traits_ReferenceVolume
 
class  FV1Geometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1IBGeometry
 Geometry and shape functions for 1st order Vertex-Centered Finite Volume. More...
 
class  FV1InnerBoundaryElemDisc
 
class  FV1ManifoldGeometry
 
class  FVGeometry
 Geometry and shape functions for any order Vertex-Centered Finite Volume. More...
 
class  FVGeometryBase
 base class for all FVGeometries More...
 
struct  fvho_traits
 Traits for Finite Volumes of higher order. More...
 
class  FVLineSourceOrSink
 Base class for line sources and sinks. More...
 
class  FVLineSourceOrSink< 1, TData >
 
class  FVPointSourceOrSink
 Base class for the point sources and sinks. More...
 
class  FVSingularSourcesAndSinks
 Manager class for point and line sources and sinks. More...
 
class  GaussJacobi10
 
class  GaussJacobi20
 
class  GaussLegendre
 
class  GaussQuadBase
 wrapper to ease implementation More...
 
class  GaussQuadrature
 fixed order gauss quadrature More...
 
class  GaussQuadrature< ReferenceEdge, 0 >
 
class  GaussQuadrature< ReferenceEdge, 1 >
 
class  GaussQuadrature< ReferenceEdge, 10 >
 
class  GaussQuadrature< ReferenceEdge, 11 >
 
class  GaussQuadrature< ReferenceEdge, 12 >
 
class  GaussQuadrature< ReferenceEdge, 13 >
 
class  GaussQuadrature< ReferenceEdge, 14 >
 
class  GaussQuadrature< ReferenceEdge, 15 >
 
class  GaussQuadrature< ReferenceEdge, 16 >
 
class  GaussQuadrature< ReferenceEdge, 17 >
 
class  GaussQuadrature< ReferenceEdge, 18 >
 
class  GaussQuadrature< ReferenceEdge, 19 >
 
class  GaussQuadrature< ReferenceEdge, 2 >
 
class  GaussQuadrature< ReferenceEdge, 3 >
 
class  GaussQuadrature< ReferenceEdge, 4 >
 
class  GaussQuadrature< ReferenceEdge, 5 >
 
class  GaussQuadrature< ReferenceEdge, 6 >
 
class  GaussQuadrature< ReferenceEdge, 7 >
 
class  GaussQuadrature< ReferenceEdge, 8 >
 
class  GaussQuadrature< ReferenceEdge, 9 >
 
class  GaussQuadrature< ReferenceHexahedron, 0 >
 
class  GaussQuadrature< ReferenceHexahedron, 1 >
 
class  GaussQuadrature< ReferenceHexahedron, 10 >
 
class  GaussQuadrature< ReferenceHexahedron, 11 >
 
class  GaussQuadrature< ReferenceHexahedron, 2 >
 
class  GaussQuadrature< ReferenceHexahedron, 3 >
 
class  GaussQuadrature< ReferenceHexahedron, 4 >
 
class  GaussQuadrature< ReferenceHexahedron, 5 >
 
class  GaussQuadrature< ReferenceHexahedron, 6 >
 
class  GaussQuadrature< ReferenceHexahedron, 7 >
 
class  GaussQuadrature< ReferenceHexahedron, 8 >
 
class  GaussQuadrature< ReferenceHexahedron, 9 >
 
class  GaussQuadrature< ReferenceOctahedron, 0 >
 
class  GaussQuadrature< ReferenceOctahedron, 1 >
 
class  GaussQuadrature< ReferenceOctahedron, 2 >
 
class  GaussQuadrature< ReferencePrism, 0 >
 
class  GaussQuadrature< ReferencePrism, 1 >
 
class  GaussQuadrature< ReferencePrism, 2 >
 
class  GaussQuadrature< ReferencePyramid, 0 >
 
class  GaussQuadrature< ReferencePyramid, 1 >
 
class  GaussQuadrature< ReferencePyramid, 2 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 0 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 1 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 10 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 11 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 12 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 13 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 2 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 3 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 4 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 5 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 6 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 7 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 8 >
 
class  GaussQuadrature< ReferenceQuadrilateral, 9 >
 
class  GaussQuadrature< ReferenceTetrahedron, 0 >
 
class  GaussQuadrature< ReferenceTetrahedron, 1 >
 
class  GaussQuadrature< ReferenceTetrahedron, 2 >
 
class  GaussQuadrature< ReferenceTetrahedron, 3 >
 
class  GaussQuadrature< ReferenceTetrahedron, 4 >
 
class  GaussQuadrature< ReferenceTetrahedron, 5 >
 
class  GaussQuadrature< ReferenceTetrahedron, 6 >
 
class  GaussQuadrature< ReferenceTetrahedron, 7 >
 
class  GaussQuadrature< ReferenceTetrahedron, 8 >
 
class  GaussQuadrature< ReferenceTriangle, 0 >
 
class  GaussQuadrature< ReferenceTriangle, 1 >
 
class  GaussQuadrature< ReferenceTriangle, 10 >
 
class  GaussQuadrature< ReferenceTriangle, 11 >
 
class  GaussQuadrature< ReferenceTriangle, 12 >
 
class  GaussQuadrature< ReferenceTriangle, 2 >
 
class  GaussQuadrature< ReferenceTriangle, 3 >
 
class  GaussQuadrature< ReferenceTriangle, 4 >
 
class  GaussQuadrature< ReferenceTriangle, 5 >
 
class  GaussQuadrature< ReferenceTriangle, 6 >
 
class  GaussQuadrature< ReferenceTriangle, 7 >
 
class  GaussQuadrature< ReferenceTriangle, 8 >
 
class  GaussQuadrature< ReferenceTriangle, 9 >
 
class  GaussQuadrature< ReferenceVertex, 0 >
 
class  GaussQuadrature< ReferenceVertex, 1 >
 
class  GaussQuadrature< ReferenceVertex, 10 >
 
class  GaussQuadrature< ReferenceVertex, 11 >
 
class  GaussQuadrature< ReferenceVertex, 12 >
 
class  GaussQuadrature< ReferenceVertex, 13 >
 
class  GaussQuadrature< ReferenceVertex, 14 >
 
class  GaussQuadrature< ReferenceVertex, 15 >
 
class  GaussQuadrature< ReferenceVertex, 16 >
 
class  GaussQuadrature< ReferenceVertex, 17 >
 
class  GaussQuadrature< ReferenceVertex, 18 >
 
class  GaussQuadrature< ReferenceVertex, 19 >
 
class  GaussQuadrature< ReferenceVertex, 2 >
 
class  GaussQuadrature< ReferenceVertex, 3 >
 
class  GaussQuadrature< ReferenceVertex, 4 >
 
class  GaussQuadrature< ReferenceVertex, 5 >
 
class  GaussQuadrature< ReferenceVertex, 6 >
 
class  GaussQuadrature< ReferenceVertex, 7 >
 
class  GaussQuadrature< ReferenceVertex, 8 >
 
class  GaussQuadrature< ReferenceVertex, 9 >
 
class  GaussQuadratureHexahedron
 
class  GaussQuadratureOctahedron
 
class  GaussQuadraturePrism
 
class  GaussQuadraturePyramid
 
class  GaussQuadratureQuadrilateral
 
class  GaussQuadratureTetrahedron
 
class  GaussQuadratureTriangle
 
class  GaussQuadratureVertex
 
class  GaussSeidel
 Gauss-Seidel preconditioner for the 'forward' ordering of the dofs. More...
 
class  GaussSeidelBase
 
class  GenerateOverlapClass
 
class  GenericGridObjectIterator
 Use this class as a tool to create iterators to your own geometric objects. More...
 
class  Geometry
 provides a grid and access to the coordinates of the vertices More...
 
class  geometry_traits
 
class  geometry_traits< ConstrainedEdge >
 
class  geometry_traits< ConstrainedQuadrilateral >
 
class  geometry_traits< ConstrainedTriangle >
 
class  geometry_traits< ConstrainedVertex >
 
class  geometry_traits< ConstrainingEdge >
 
class  geometry_traits< ConstrainingQuadrilateral >
 
class  geometry_traits< ConstrainingTriangle >
 
class  geometry_traits< Edge >
 
class  geometry_traits< Face >
 
class  geometry_traits< GridObject >
 
class  geometry_traits< Hexahedron >
 
class  geometry_traits< Octahedron >
 
class  geometry_traits< Prism >
 
class  geometry_traits< Pyramid >
 
class  geometry_traits< Quadrilateral >
 
class  geometry_traits< RegularEdge >
 
class  geometry_traits< RegularVertex >
 
class  geometry_traits< Tetrahedron >
 
class  geometry_traits< Triangle >
 
class  geometry_traits< Vertex >
 
class  geometry_traits< Volume >
 
class  GeomObjAttachmentSerializer
 Serialization callback for grid attachments. More...
 
struct  GeomObjBaseTypeByDim
 
struct  GeomObjBaseTypeByDim< 0 >
 
struct  GeomObjBaseTypeByDim< 1 >
 
struct  GeomObjBaseTypeByDim< 2 >
 
struct  GeomObjBaseTypeByDim< 3 >
 
class  GeomObjDataSerializer
 Interface for handling serialization and deserialization of data associated with geometric objects. More...
 
class  GeomProvider
 Geom Provider, holding a single instance of a geometry. More...
 
class  GlobalAttachments
 Global attachments are automatically read/written from/to files and are considered during redistribution. More...
 
class  GlobalFracturedMediaRefiner
 
class  GlobalGridFunctionGradientData
 
class  GlobalGridFunctionNumberData
 
class  GlobalMarking
 mark everything if error too high and refinement allowed More...
 
class  GlobalMultiGridRefiner
 
class  GMRES
 the GMREs method as a solver for linear operators More...
 
class  GPUSparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  GPUVector
 
class  GradientDataExport
 
class  GradientEvaluator_LagrangeP1
 
class  Grid
 Manages the elements of a grid and their interconnection. More...
 
struct  grid_dim_traits
 
struct  grid_dim_traits< 0 >
 
struct  grid_dim_traits< 1 >
 
struct  grid_dim_traits< 2 >
 
struct  grid_dim_traits< 3 >
 
class  GridDataSerializationHandler
 Serialization of data associated with grid elements. More...
 
class  GridDataSerializer
 Interface for handling serialization and deserialization of data associated with all geometric objects in a grid. More...
 
class  GridFunction
 represents numerical solutions on a grid using an algebraic vector More...
 
class  GridFunctionDebugWriter
 
class  GridFunctionGradientComponentData
 Retrieve component of gradient of GridFunction. More...
 
class  GridFunctionGradientData
 
class  GridFunctionNumberData
 
class  GridFunctionPositionProvider
 
class  GridFunctionVectorData
 
class  GridFunctionVectorWriter
 
class  GridFunctionVectorWriterDirichlet0
 
struct  GridHeader
 
class  GridLayoutMap
 lets you access layouts by type and key More...
 
class  GridLevel
 
class  GridMessage_Adaption
 A message sent along with "GridRefinement" messages. More...
 
class  GridMessage_Creation
 
class  GridMessage_Distribution
 
class  GridMessage_MultiGridChanged
 A message sent by the MultiGrid, if something special happened. More...
 
class  GridObject
 The base class for all geometric objects, such as vertices, edges, faces, volumes, ... More...
 
class  GridObjectCollection
 a helper class that holds a collection of possibly unconnected geometric-objects. More...
 
struct  GridObjectInfo
 
class  GridObserver
 
class  GridReaderUGX
 Grants read access to ugx files. More...
 
class  GridReaderVTU
 Grants read access to vtu (vtk) files. More...
 
class  GridSubsetHandler
 Partitions elements of a grid into several subsets. More...
 
class  GridWriterUGX
 Grants write access to ugx files. More...
 
class  GridWriterVTU
 Grants write access to vtu files. More...
 
class  H1DiffIntegrand
 
class  H1ErrorIntegrand
 
class  HangingNodeRefiner_Grid
 Specialization of ug::HangingNodeRefiner for ug::Grid. More...
 
class  HangingNodeRefiner_MultiGrid
 Specialization of ug::HangingNodeRefiner for ug::MultiGrid. More...
 
class  HangingNodeRefinerBase
 Base class for a hanging-node refiner. More...
 
class  Hash
 
class  hash_iterator
 this iterator is used by the hash class to provide access to the elements of a given key More...
 
struct  hcrfv_traits
 
struct  hcrfv_traits< 2, 2 >
 
struct  hcrfv_traits< 2, 3 >
 
struct  hcrfv_traits< 3, 3 >
 
struct  hcrfv_traits< 3, 4 >
 
class  HCRFVGeometry
 
struct  hdimfv1_traits
 
struct  hdimfv1_traits< 1 >
 
struct  hdimfv1_traits< 2 >
 
struct  hdimfv1_traits< 3 >
 
class  Heightfield
 
class  Hexahedron
 A volume element with 6 quadrilateral sides. More...
 
class  HexahedronClass
 
class  HexahedronDescriptor
 only used to initialize a hexahedron. for all other tasks you should use VolumeDescripor. More...
 
struct  hfv1_traits
 Traits for hanging finite volume (dummy implementation) More...
 
struct  hfv1_traits< ReferenceEdge, 1 >
 
struct  hfv1_traits< ReferenceEdge, 2 >
 
struct  hfv1_traits< ReferenceEdge, 3 >
 
struct  hfv1_traits< ReferenceHexahedron, 3 >
 
struct  hfv1_traits< ReferenceOctahedron, 3 >
 
struct  hfv1_traits< ReferencePrism, 3 >
 
struct  hfv1_traits< ReferencePyramid, 3 >
 
struct  hfv1_traits< ReferenceQuadrilateral, 2 >
 
struct  hfv1_traits< ReferenceQuadrilateral, 3 >
 
struct  hfv1_traits< ReferenceTetrahedron, 3 >
 
struct  hfv1_traits< ReferenceTriangle, 2 >
 
struct  hfv1_traits< ReferenceTriangle, 3 >
 
struct  hfv1_traits_ReferenceEdge
 
struct  hfv1_traits_ReferenceFace
 
class  HFV1Geometry
 
class  HFV1ManifoldGeometry
 
class  HorizontalAlgebraLayouts
 Holds Interfaces and communicators for horizontal communication. More...
 
class  HorizontalAnisotropyAdjuster
 Selects additional edges to preserve layers in a grid with horizontal anisotropies. More...
 
class  IApproximationSpace
 describes the ansatz spaces on a domain More...
 
class  IAssemble
 Interface providing Jacobian and Defect of a discretization. More...
 
class  IAttachment
 the interface for attachments. More...
 
class  IAttachmentDataContainer
 the interface for an attachment-data-container. More...
 
class  IBalanceWeights
 
class  IBlockJacobiPreconditioner
 
class  IConstraint
 interface for adjustment of constraints More...
 
class  IConvectionShapes
 Interface class for upwind methods. More...
 
class  IConvergenceCheck
 
class  ICplUserData
 Base class for UserData. More...
 
class  IDamping
 
class  IDataImport
 Base class for data import. More...
 
class  IDebugWriter
 base class for all debug writer More...
 
class  IDiscretizationItem
 
class  IDomain
 describes a physical domain More...
 
class  IDomainConstraint
 
class  IDomainDiscretization
 Interface for domain disretization. More...
 
class  IDualGraphNeighborCollector
 
class  IDWInterpolation
 Class for inverse distance weighting based on a general data type. More...
 
class  IDWUserData
 UserData interface for the IDW interpolation. More...
 
class  IEigensolver
 
class  IElemDisc
 base class for all element-wise discretizations More...
 
class  IElemDiscModifier
 
struct  IElementMarkingStrategy
 Abstract base class for element marking (in adaptive refinement) More...
 
class  IElemProlongation
 
class  IElemRestriction
 
class  IErrEstData
 Base class for error estimator data. More...
 
class  IExternalSolver
 
class  IExternalSolverImplementation
 
class  IFunction
 
class  IGeometry
 provides a grid and access to the coordinates of the vertices More...
 
class  IGridFunction
 Base class for all Grid Functions. More...
 
class  IIdentifier
 Interface to match periodic geometric elements. More...
 
class  IIntegrand
 Abstract integrand interface. More...
 
class  ILagrangeMultiplierDisc
 
class  ILinearIterator
 describes a linear iterator More...
 
class  ILinearOperator
 describes a linear mapping X->Y More...
 
class  ILinearOperatorInverse
 describes an inverse linear mapping X->Y More...
 
class  ILineSearch
 
class  ILocalRemesher
 
class  ILocalToGlobalMapper
 interface for definition of special LocalToGlobal mappings More...
 
class  ILU
 ILU / ILU(beta) preconditioner. More...
 
class  ILUTPreconditioner
 
class  ILUTScalarPreconditioner
 
class  IMatrixOperatorInverse
 describes an inverse linear mapping X->Y based on a matrix More...
 
struct  IndCmp
 
class  IndexView
 
class  INewtonUpdate
 general interface for data updates during Newton process More...
 
struct  InnerBoundaryConstants
 
struct  Int2Type
 
class  InterSubsetPartitionWeighting
 
class  InverseLinker
 
class  IObstacleConstraint
 Interface for Obstacle Constraints. More...
 
class  IOperator
 describes a mapping X->Y More...
 
class  IOperatorInverse
 describes an inverse mapping X->Y More...
 
class  IPartitioner
 Partitioners can be used inside a LoadBalancer or separately to create partition maps. More...
 
class  IPartitionPostProcessor
 allows to post-process partitions More...
 
class  IPatchRemesher
 
class  IPositionProvider
 Interface for providing vertex positions. More...
 
class  IPreconditionedLinearOperatorInverse
 describes an inverse linear mapping X->X More...
 
class  IPreconditioner
 describes a linear iterator that is based on a matrix operator More...
 
class  IProjGaussSeidel
 Interface for Projected GaussSeidel Preconditioner. More...
 
class  IRefiner
 The refiner interface allows to mark elements for refinement and to call refine. More...
 
class  IRefMarkAdjuster
 
class  IsBoundaryOrManifodFace
 
class  ISchurComplementInverse
 
class  ISelector
 base-implementation of a selector More...
 
class  IsInSubGrid
 Callbacks that return true if an element is contained in a sub-grid. More...
 
class  IsInSubset
 Element callback that returns true, if an element is contained in a subset. More...
 
class  IsMarked
 Element callback that returns true, if an element is marked. More...
 
class  IsNotBoundaryOrManifodFace
 
class  IsNotInSubGrid
 Callbacks that return true if an element is not contained in a sub-grid. More...
 
class  IsNotInSubset
 Element callback that returns true, if an element is not contained in a subset. More...
 
class  IsNotMarked
 Element callback that returns true, if an element is not marked. More...
 
class  IsNotOnBoundary
 Element callback that returns true, if an element does not lie on the grids boundary. More...
 
class  IsNotSelected
 Element callback that returns true, if an element is not selected. More...
 
class  IsOnBoundary
 Element callback that returns true, if an element lies on the grids boundary. More...
 
class  IsRegularSurfaceElem
 Returns true if an element is a regular surface element. More...
 
class  IsSelected
 Element callback that returns true, if an element is selected. More...
 
class  ISubGrid
 Instances represent a part of a grid. More...
 
class  ISubsetHandler
 
struct  IteratorProvider
 
struct  IteratorProvider< MGSubsetHandler >
 
class  ITimeDiscretization
 Time Discretization Interface. More...
 
class  ITransferOperator
 interface for transfer routines More...
 
class  ITransferPostProcess
 interface for transfer routines More...
 
class  ITransformingIteration
 
class  IVector
 
class  IVector_AlgebraDownCastTo
 
class  IVectorDebugWriter
 base class for all vector debug writer More...
 
class  IVectorWriter
 Interface for modifying a vector (e.g, setting Dirichlet values, ...) More...
 
class  IVertexGroup
 Base class for all classes which consist of a group of vertices. More...
 
class  Jacobi
 Jacobi-Iteration. More...
 
class  KDTree
 
struct  KDTreeDesc
 
class  KDTreeStatic
 organizes vertices in a binary-tree structure. Only for static use! More...
 
class  KDVertexDistance
 used by KDTreeStatic More...
 
class  L2DiffIntegrand
 
class  L2ErrorIntegrand
 
class  L2FuncIntegrand
 
class  Lagrange1D
 
class  LagrangeLDS
 Lagrange DoF Set. More...
 
class  LagrangeLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  LagrangeLSFS< ReferenceEdge, TOrder >
 specialization for Edges More...
 
class  LagrangeLSFS< ReferenceHexahedron, TOrder >
 
class  LagrangeLSFS< ReferenceOctahedron, TOrder >
 
class  LagrangeLSFS< ReferencePrism, TOrder >
 
class  LagrangeLSFS< ReferencePyramid, TOrder >
 
class  LagrangeLSFS< ReferenceQuadrilateral, TOrder >
 
class  LagrangeLSFS< ReferenceTetrahedron, TOrder >
 
class  LagrangeLSFS< ReferenceTriangle, TOrder >
 
class  LagrangeLSFS< ReferenceVertex, TOrder >
 specialization for Vertex More...
 
class  LagrangeP1
 Lagrange shape functions of first order. More...
 
class  LFEID
 Identifier for Local Finite Elements. More...
 
class  lg_ntree
 
struct  lg_ntree_traits_base
 
class  LinearIteratorProduct
 
class  LinearIteratorSum
 
class  LinearSolver
 linear solver using abstract preconditioner interface More...
 
class  LineGaussSeidel
 
class  LineSourceOrSink
 
class  LineVanka
 
struct  linker_traits
 Linker Traits. More...
 
struct  linker_traits< MathMatrix< dim, dim >, number >
 
struct  linker_traits< MathTensor< 4, dim >, number >
 
struct  linker_traits< MathVector< dim >, MathMatrix< dim, dim > >
 
struct  linker_traits< MathVector< dim >, MathVector< dim >, number >
 
struct  linker_traits< MathVector< dim >, number >
 
struct  linker_traits< number, number >
 
class  LoadBalancer
 A load-balancer redistributes grids using the specified partitioner and process-hierarchy. More...
 
class  LoaderObj
 
class  LocalDoF
 
class  LocalDoFSet
 
class  LocalFiniteElementProvider
 
class  LocalIndices
 
class  LocalMatrix
 
class  localMatrix_from_col_major_and_array
 
class  localMatrix_from_mat_and_array
 
class  localMatrix_from_row_major_and_array
 
class  LocalSchurComplement
 operator implementation of the local Schur complement More...
 
class  LocalShapeFunctionSet
 virtual base class for local shape function sets More...
 
class  LocalShapeFunctionSetWrapper
 wrapper class implementing the LocalShapeFunctionSet interface More...
 
class  LocalToGlobalMapper
 
class  LocalToGlobalMapperNLGS
 
class  LocalVector
 
class  localVector_from_array
 
class  LocalVectorTimeSeries
 time series of local vectors More...
 
class  LogAssistant
 
class  LognormalRandomField
 
class  LU
 
struct  lua_traits
 Lua Traits to push/pop on lua stack. More...
 
struct  lua_traits< bool >
 
struct  lua_traits< int >
 
struct  lua_traits< MathMatrix< dim, dim > >
 
struct  lua_traits< number >
 
struct  lua_traits< ug::MathVector< dim > >
 
struct  lua_traits< void >
 
class  LuaFunction
 
class  LuaFunctionHandle
 Handle for a lua reference. More...
 
class  LUAParserClass
 
class  LuaUserData
 provides data specified in the lua script More...
 
class  LuaUserDataFactory
 Factory providing LuaUserData. More...
 
class  LuaUserFunction
 maps several data values to an output data value using a lua callback More...
 
class  LuaUserNumberNumberFunction
 this class maps a scalar value an output scalar value using a lua callback More...
 
class  MapSparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  MapVector
 
struct  MarkerPoint
 
class  MarkerPointManager
 
struct  mat_operations_class
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_GLOBAL_FUNCTIONS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_MEMBER_FUNCTIONS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_OPERATORS >
 
struct  mat_operations_class< vector_t, matrix_t, MATRIX_USE_ROW_FUNCTIONS >
 
class  MathMatrix
 A class for fixed size, dense matrices. More...
 
class  MathMatrix< 0, 0, T >
 
class  MathMatrix< 0, N, T >
 
class  MathMatrix< N, 0, T >
 
class  MathSymmetricMatrix
 A class for fixed size, dense matrices. More...
 
class  MathTensor
 a mathematical Tensor of rank TRank and N entries. More...
 
class  MathTensor1
 
class  MathTensor2
 
class  MathTensor3
 
class  MathTensor4
 
class  MathTensor< 1, N, T >
 
class  MathTensorX
 
class  MathVector
 a mathematical Vector with N entries. More...
 
class  MathVector< 0, T >
 
class  MathVector< 1, T >
 
class  MathVector< 2, T >
 
class  MathVector< 3, T >
 
class  MathVector< 4, T >
 
struct  matrix_algebra_type_traits
 
struct  matrix_algebra_type_traits< DenseMatrix< T > >
 
struct  matrix_algebra_type_traits< DenseMatrixInverse< T > >
 
struct  matrix_algebra_type_traits< GPUSparseMatrix< T > >
 
struct  matrix_algebra_type_traits< MapSparseMatrix< T > >
 
struct  matrix_algebra_type_traits< MatrixOperator< M, X, Y > >
 
struct  matrix_algebra_type_traits< ParallelMatrix< T > >
 
struct  matrix_algebra_type_traits< SparseMatrix< T > >
 
class  MatrixDiagonal
 
class  MatrixDiagonalInverse
 
class  MatrixFileType
 Representation of a matrix exchange file format. More...
 
class  MatrixIO
 Generic matrix I/O functionality. More...
 
class  MatrixIOMtx
 Provides I/O functionality for MatrixMarket exchange file format. More...
 
class  MatrixOperator
 
class  MatrixRow
 
class  MatVec_Expression
 
class  maxheap
 updateable priority queue class. unlike most PQ implementations, we need a method to inform the PQ of updated elements thats why we cannot use priority_queue from the STL. maxheap works on an external array of elements T, note that none of the elements of m_arr[0]..m_arr[size-1] are in the heap at the begining. You can insert elements by using maxheap::insert(i); More...
 
class  MaximumMarking
 
class  MeanValueMarking
 
class  MemTrackerStruct
 
class  MessageHub
 Allows to register callbacks and post messages to those callbacks. More...
 
struct  MGEdgeInfo
 Holds information about edge relations. Used internally. More...
 
struct  MGFaceInfo
 Holds information about face relations. Used internally. More...
 
class  MGHNodeAdjuster
 Makes sure that that hierarchical dependencies are considered during hnode refinement. More...
 
class  mginfo_traits
 access to connected types. used internally More...
 
class  mginfo_traits< Edge >
 edge info traits. used internally. More...
 
class  mginfo_traits< Face >
 face info traits. used internally. More...
 
class  mginfo_traits< Vertex >
 vertex info traits. used internally. More...
 
class  mginfo_traits< Volume >
 volume info traits. used internally. More...
 
class  MGSelector
 specialization of ISelector for grids of class MultiGrid. More...
 
struct  MGVertexInfo
 Holds information about vertex relations. Used internally. More...
 
struct  MGVolumeInfo
 Holds information about volume relations. Used internally. More...
 
class  MGWrapper
 
class  MGWrapper< Grid >
 
class  MGWrapper< MultiGrid >
 
struct  MidID
 helper class to store dimension and id of a midpoint of a sub-element More...
 
class  MiniBubbleLDS
 MiniBubble Set (2D only!) More...
 
class  MiniBubbleLSFS
 Lagrange Shape Function Set without virtual functions and fixed order. More...
 
class  MiniBubbleLSFS< ReferenceEdge >
 
class  MiniBubbleLSFS< ReferenceHexahedron >
 
class  MiniBubbleLSFS< ReferenceQuadrilateral >
 
class  MiniBubbleLSFS< ReferenceTetrahedron >
 
class  MiniBubbleLSFS< ReferenceTriangle >
 
class  MinimalEnergyDamping
 damping computed based on the minimal energy More...
 
class  MinimalResiduumDamping
 damping computed based on the minimal residuum More...
 
class  MMTypeCode
 Type representation for MatrixMarket matrix exchange files. More...
 
class  MultiElementAttachmentAccessor
 Accesses attachements in different element types at the same time. More...
 
class  MultiGrid
 
class  MultiGridSubsetHandler
 Handles subsets on a per level basis. More...
 
class  MultiIndex
 
class  MultiIndex< 1, size_t >
 
class  MultiIndex< 2, size_t >
 
class  MultiIndex< 3, size_t >
 
class  MultipleErrEstData
 Error estimator data class for discretizations with more than one unknown. More...
 
class  MultipleSideAndElemErrEstData
 
class  MultiStepTimeDiscretization
 multi step time stepping scheme More...
 
class  NedelecLDS
 Nedelec, i.e. the edge local dof set. More...
 
class  NedelecLSFS
 
class  NedelecLSFS< ReferenceTetrahedron >
 Nedelec (or Whitney-1) base function set for tetrahedra. More...
 
class  NedelecLSFS< ReferenceTriangle >
 Nedelec (or Whitney-1) base function set for triangles. More...
 
class  NeumannBoundaryBase
 
class  NeumannBoundaryFE
 
class  NeumannBoundaryFV
 
class  NeumannBoundaryFV1
 
class  NewLayoutCreator
 
class  NewtonCotes
 
class  NewtonSolver
 Newton solver for assembling based discretizations. More...
 
class  NLGaussSeidelSolver
 Nonlinear GaussSeidel-method. More...
 
class  NLJacobiSolver
 Nonlinear Jacobi-method. More...
 
class  ntree
 The n-tree class can be used to construct space partitioning trees of dimensions 1, 2, and 3. More...
 
struct  ntree_traits
 
struct  ntree_traits< 1, 1, elem_t, NTreeGridData< 1 > >
 
struct  ntree_traits< 1, 2, elem_t, NTreeGridData< 2 > >
 
struct  ntree_traits< 2, 2, elem_t, NTreeGridData< 2 > >
 
struct  ntree_traits< 2, 3, elem_t, NTreeGridData< 3 > >
 
struct  ntree_traits< 3, 3, elem_t, NTreeGridData< 3 > >
 
struct  NTreeDesc
 
class  NTreeGridData
 
struct  OBJMaterial
 holds information about the materials in the obj-file. More...
 
class  ObstacleInNormalDir
 Obstacle Class for Obstacle in normal direction. More...
 
class  Octahedron
 platonic solid with eight faces. More...
 
class  OctahedronClass
 
class  OctahedronDescriptor
 only used to initialize a octahedron. for all other tasks you should use VolumeDescripor. More...
 
class  OneSideP1Constraints
 
struct  operation_add
 
struct  operation_sub
 
class  OperatorInverseIterator
 
class  OStreamBufferSplitter
 forwards data written to this stream-buffer to other stream buffers. More...
 
class  OwnedPtr
 Holds and automatically deletes a pointer, similar to std::auto_ptr. USE WITH CARE! More...
 
class  P1LagrangeElemTransfer
 
class  PageContainer
 
class  ParallelColoring
 
class  ParallelDualGraph
 Generates the parralel dual graph of a MultiGrid as, e.g., required by Parmetis. More...
 
class  ParallelGlobalFracturedMediaRefiner
 Adds parallel support to GlobalFracturedMediaRefiner. More...
 
class  ParallelHangingNodeRefiner_MultiGrid
 
class  ParallelHNodeAdjuster
 Makes sure that that marks are propagated over process interfaces. More...
 
class  ParallelMatrix
 Wrapper for sequential matrices to handle them in parallel. More...
 
class  ParallelNodes
 
class  ParallelProgress
 
class  ParallelShiftIdentifier
 This class matches geometric elements which are parallel translated. More...
 
class  ParallelVector
 
class  Partitioner_DynamicBisection
 Parallel bisection partitioner. More...
 
class  PartitionMap
 Used to describe how a domain shall be distributed in a parallel environment. More...
 
class  PartitionWeighting
 
class  PathProvider
 Singleton which stores common paths and a stack of current paths. More...
 
class  PeriodicAttachmentAccessor
 Accesses attachements with consideration to periodic boundaries. More...
 
class  PeriodicBoundaryManager
 
class  PiecewiseConstantElemTransfer
 
class  PiecewiseConstantLSFS
 Elementwise constant shape functions. More...
 
class  PILUTPreconditioner
 
class  PINVIT
 
class  PlaneCutProjector
 calculates new positions by cutting parent edges with a plane More...
 
struct  Pointer2Value
 
struct  Pointer2Value< T * >
 
class  PointerConstArray
 Container which holds an array of pointers. More...
 
class  PointSourceOrSink
 
class  Polynomial1D
 
struct  PosAndIndex
 
struct  Pow
 
struct  Pow< n, 0 >
 
struct  PrimalConnection
 
class  PrimalSubassembledMatrixInverse
 operator implementation of the inverse of the Schur complement w.r.t. the "Delta unknowns" More...
 
class  Prism
 A volume element with 2 triangle and 3 quadrilateral sides. More...
 
class  PrismClass
 
class  PrismDescriptor
 only used to initialize a prism. for all other tasks you should use VolumeDescripor. More...
 
class  ProcessHierarchy
 Defines how the different levels of a grid shall be distributed across the available processes. More...
 
class  Progress
 
class  ProjBackwardGaussSeidel
 
class  ProjectionHandler
 Associates different projectors with individual subsets. More...
 
class  ProjectionLinker
 
class  ProjGaussSeidel
 Projected GaussSeidel (SOR) -method. More...
 
class  ProjSymmetricGaussSeidel
 
class  ProtectSubsetPartitionWeighting
 
class  Provider
 Provider, holding a single instance of an object. More...
 
struct  PtrToValueType
 
struct  PtrToValueType< Edge * >
 
struct  PtrToValueType< Face * >
 
struct  PtrToValueType< Vertex * >
 
struct  PtrToValueType< Volume * >
 
class  Pyramid
 A volume element with 4 triangle and 1 quadrilateral sides. More...
 
class  PyramidClass
 
class  PyramidDescriptor
 only used to initialize a pyramids. for all other tasks you should use VolumeDescripor. More...
 
class  QuadratureRule
 provides quadrature rule for a Reference Dimension More...
 
class  QuadratureRuleProvider
 provides quadrature rules for a reference dimension More...
 
class  Quadrilateral
 a face with four points. More...
 
class  QuadrilateralDescriptor
 only used to initialize a quadrilateral. for all other tasks you should use FaceDescriptor. More...
 
class  Raster
 Generic raster for arbitrary dimensions. More...
 
struct  RasterLayerDesc
 
class  RasterLayers
 
struct  RayElemIntersectionRecord
 
struct  reference_element_traits
 traits for reference elements More...
 
struct  reference_element_traits< ConstrainedEdge >
 
struct  reference_element_traits< ConstrainedQuadrilateral >
 
struct  reference_element_traits< ConstrainedTriangle >
 
struct  reference_element_traits< ConstrainedVertex >
 
struct  reference_element_traits< ConstrainingEdge >
 
struct  reference_element_traits< ConstrainingQuadrilateral >
 
struct  reference_element_traits< ConstrainingTriangle >
 
struct  reference_element_traits< Edge >
 
struct  reference_element_traits< Hexahedron >
 
struct  reference_element_traits< Octahedron >
 
struct  reference_element_traits< Prism >
 
struct  reference_element_traits< Pyramid >
 
struct  reference_element_traits< Quadrilateral >
 
struct  reference_element_traits< RegularEdge >
 
struct  reference_element_traits< RegularVertex >
 
struct  reference_element_traits< Tetrahedron >
 
struct  reference_element_traits< Triangle >
 
struct  reference_element_traits< Vertex >
 
class  ReferenceEdge
 
class  ReferenceElement
 base class for reference elements More...
 
class  ReferenceElementProvider
 Provider for Reference Elements. More...
 
class  ReferenceHexahedron
 reference element for a hexahedron More...
 
class  ReferenceMapping
 
class  ReferenceMapping< ReferenceEdge, TWorldDim >
 
class  ReferenceMapping< ReferenceHexahedron, TWorldDim >
 
class  ReferenceMapping< ReferenceOctahedron, TWorldDim >
 
class  ReferenceMapping< ReferencePrism, TWorldDim >
 
class  ReferenceMapping< ReferencePyramid, TWorldDim >
 
class  ReferenceMapping< ReferenceQuadrilateral, TWorldDim >
 
class  ReferenceMapping< ReferenceTetrahedron, TWorldDim >
 
class  ReferenceMapping< ReferenceTriangle, TWorldDim >
 
class  ReferenceMapping< ReferenceVertex, TWorldDim >
 
class  ReferenceMappingProvider
 class to provide reference mappings More...
 
class  ReferenceOctahedron
 
class  ReferencePrism
 
class  ReferencePyramid
 
class  ReferenceQuadrilateral
 
class  ReferenceTetrahedron
 
class  ReferenceTriangle
 
class  ReferenceVertex
 
class  RefinementProjector
 Adjusts vertex coordinates during refinement. More...
 
class  RegularEdge
 Edges connect two vertices. More...
 
class  RegularRefiner_MultiGrid
 
class  RegularVertex
 A basic vertex-type. More...
 
class  ReservableArray2
 
class  RevisionCounter
 Class used to identify a state of adaption of a grid, approx-space, ... More...
 
class  RotatingCone2d
 
class  RotatingVelocity2d
 
class  RowSendingScheme
 
class  ScalarLowerObstacle
 Scalar Lower Obstacles. More...
 
class  ScalarSubVectorAdapter
 
class  ScalarUpperObstacle
 
class  ScaleAddLinker
 
class  SchurComplementMatrixOperator
 
class  SchurComplementOperator
 
class  SchurInverseWithAGammaGamma
 
class  SchurInverseWithAutoFullMatrix
 
class  SchurInverseWithFullMatrix
 
class  SchurInverseWithOperator
 
class  SchurPrecond
 operator implementation of the DD Schur complement solver More...
 
struct  SCVFofSCVRayIntersectionWrapper
 
struct  SCVFofSCVRayIntersectionWrapper< 2, 2 >
 
class  SDIRK
 Singly Diagonal Implicit Runge Kutta Method. More...
 
class  SectionContainer
 A container that is divided into different sections. More...
 
struct  SectionContainerSelector
 Helper class to access the correct element storage from its element type. More...
 
struct  SectionContainerSelector< Edge >
 
struct  SectionContainerSelector< Face >
 
struct  SectionContainerSelector< Vertex >
 
struct  SectionContainerSelector< Volume >
 
class  Selector
 specialization of ISelector for a grid of class Grid. More...
 
class  SideAndElemErrEstData
 Error estimator data class storing a number vector per side and per element. More...
 
class  SideFluxErrEstData
 Error estimator data class storing one scalar number per side. More...
 
class  SimpleGrid
 
class  SingularSourcesAndSinks
 
class  SingularSourcesAndSinks< 1, non >
 
class  SliceIndexView
 
class  SlicingData
 
class  SmartPtrVector
 
class  SmoothPartitionBounds
 early draft. Currently only useful for prism-geometries in the d3f-wipp setting More...
 
class  SmoothProjector
 Smoothes vertices during refinement. More...
 
class  SoftAbort
 This special error is used to perform a soft-abort e.g. during script execution. More...
 
struct  sortStruct
 
struct  SortVertexPos
 
class  SparseBlockGaussSeidel
 
class  SparseBlockGaussSeidel2
 
class  SparseMatrix
 sparse matrix for big, variable sparse matrices. More...
 
class  SparseVector
 
class  Sphere
 
class  SphereProjector
 Projects new vertices onto a sphere during refinement. More...
 
class  StandardLineSearch
 standard implementation of the line search based on the "sufficient descent" More...
 
struct  static_type
 
struct  std_number_vector_attachment_reduce_traits
 
class  StdArrayCommunicationScheme
 Communication Scheme for synchronization of arrays or similar datastructures. More...
 
class  StdBalanceWeights
 
class  StdCoarseningMarkingStrategy
 M. Breit's standard coarsening strategy. More...
 
class  StdConstData
 
class  StdConvCheck
 
class  StdDataLinker
 combines several UserDatas to a new UserData of a specified type More...
 
class  StdDependentUserData
 
class  StdExplicitGridFunctionData
 
class  StdFuncIntegrand
 
class  StdGlobAssembler
 Global assembler based on the straightforward application of the local discretizations. More...
 
class  StdGlobPosData
 
class  StdHNodeAdjuster
 Makes sure that elements are marked correctly so that hnode-refinement produces a valid grid. More...
 
class  StdInjection
 
class  StdIntegrand
 Abstract integrand interface. More...
 
class  StdLagrangeElemTransfer
 
class  StdLinConsistentGravity
 Class for the computation of the standard version ('Voss-Souza-type') of the consistent gravity. More...
 
class  StdLinConsistentGravityX
 Class for the computation of the enhanced version ('Frolkovic-type') of the consistent gravity. More...
 
class  StdRefinementMarkingStrategy
 M. Breit's standard refinement strategy. More...
 
class  StdTransfer
 Standard Prolongation Operator. More...
 
class  StdUserData
 
class  stdvector
 
class  Stopwatch
 Stopwatch class for quickly taking times. More...
 
struct  storage_traits1
 
struct  storage_traits1< FixedArray1< T, N > >
 
struct  storage_traits1< VariableArray1< T > >
 
class  StringTableStream
 
class  StrongNegativeConnectionsByBlockNorm
 Adds 'strong negative connections' to graph. More...
 
class  SubdivisionProjector
 Applies piecewise smooth loop subdivision rules. More...
 
class  SubdivRules_PLoop
 A singleton that stores all rules for a piecewise-loop subdivision surface. More...
 
class  SubGrid
 specializes ISubGrid for general callback classes. More...
 
class  SubLocalDoFSet
 
class  SubsetGroup
 Group of subsets. More...
 
class  SubsetHandlerSerializer
 
class  SubsetIndicatorUserData
 User data of a subset indicator (1 in the subset, 0 everywhere else) More...
 
struct  SubsetInfo
 a struct that holds information associated with subsets. More...
 
class  SurfaceView
 Represents the surface view of a multi-grid hierarchy. More...
 
struct  SweepLineEdge
 
struct  SweepLineVertex
 
class  SymmetricGaussSeidel
 
class  SymP1Constraints
 
class  Table
 Useful for printing a table to the terminal or into a file. More...
 
struct  TargetProcInfo
 
struct  TarHeader
 
class  TE_AlphaVec
 
class  TE_AMV_X
 
class  TE_TRANSPOSED
 
class  TE_VecAdd2
 
class  TE_VecAdd3
 
class  TE_VecScale
 
class  TE_Vector
 
class  TElemSelector
 specialization of ISelector for a subset of the elements in a grid of class Grid. More...
 
class  Tetrahedron
 the most simple volume-element. More...
 
class  TetrahedronClass
 
class  TetrahedronDescriptor
 only used to initialize a tetrahedron. for all other tasks you should use VolumeDescripor. More...
 
class  THangingNodeRefiner
 Gives access to a hanging node refiner, depending on the grid-type. More...
 
class  THangingNodeRefiner< Grid >
 
class  THangingNodeRefiner< MultiGrid >
 
class  ThetaTimeStep
 theta time stepping scheme More...
 
struct  TIKZElem
 
struct  TikzExportDesc
 
class  ToElementPosition
 
class  TParallelGlobalRefiner
 Adds parallel support to a global refiner. More...
 
class  TransferValueAccessor
 
class  TRANSPOSED
 this helper class is a transposed of class A More...
 
class  Traverser_FindContainingElement
 
class  Traverser_FindElementsInIntersectingNodes
 
class  Traverser_FindLowestLeafNodeLevel
 
class  Traverser_MinMaxNumElements
 returns the minimum and maximum number of elements in all subtrees of nodes of the given level More...
 
class  Traverser_RayElementIntersection
 
struct  TRI
 
class  Triangle
 the most simple form of a face More...
 
class  TriangleDescriptor
 only used to initialize a triangle. for all other tasks you should use FaceDescriptor. More...
 
class  TruncatedEquidistantLagrange1D
 
class  TruncatedMonotoneTransfer
 
struct  TypeList
 
struct  TypeList< EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType, EmptyType >
 
struct  TypeValueList
 
struct  TypeValueList< TypeList<> >
 
class  UGError
 Instances of this class or of derived classes are thrown if errors arise. More...
 
struct  UGError_ReferenceElementMissing
 Exception thrown when reference element not found. More...
 
class  UGProfileNode
 
class  UGProfileNodeNull
 This singleton represents a UGProfileNode that has not been found. More...
 
class  UGXFileInfo
 
class  UID
 supplies a unique ID. More...
 
class  UniqueFVGeomIDProvider
 a singleton class that returns a new id for each type More...
 
class  UniqueTypeIDProvider
 a singleton class that returns a new id for each type More...
 
class  UnsortedSparseVector
 
class  UpdateableMatrixOperator
 
struct  user_data_traits
 
struct  user_data_traits< MathMatrix< dim, dim > >
 
struct  user_data_traits< MathTensor< 4, dim > >
 
struct  user_data_traits< MathVector< dim > >
 
struct  user_data_traits< number >
 
class  UserData
 Type based UserData. More...
 
class  UserDataInfo
 base class providing runtime-info on dimension and type More...
 
class  UserDataIntegrand
 
class  ValueDataExport
 
class  Vanka
 Vanka Preconditioner. More...
 
struct  variable_type
 
class  VariableArray1
 
class  VariableArray2
 
class  VarianceMarking
 
class  VarianceMarkingEta
 
class  Variant
 A variant can represent variables of different types. More...
 
class  Vector
 
struct  vector_attachment_reduce_traits
 
class  VectorDataExport
 
class  VectorDebugWritingObject
 
struct  VectorProxy
 
struct  VectorProxyBase
 Proxy struct for generic passing of any vector type. More...
 
class  VectorTimeSeries
 time series of solutions and corresponding time point More...
 
class  Vertex
 Base-class for all vertex-types. More...
 
class  VMAdd
 –> documentation in vm.doxygen <–/// More...
 
class  Volume
 Volumes are 3-dimensional objects. More...
 
class  VolumeDescriptor
 Holds a set of vertices which represent the corners of a volume element. More...
 
class  VolumeVertices
 holds the vertices of a Volume or a VolumeDescriptor More...
 
class  VTKOutput
 output writer to the VTK file format More...
 

Typedefs

typedef Attachment< bool > ABool
 
typedef Attachment< byteAByte
 
typedef Attachment< char > AChar
 
typedef Attachment< vector< TargetProcInfo > > ADistInfo
 
typedef Attachment< double > ADouble
 
typedef Attachment< Edge * > AEdge
 
typedef Attachment< Face * > AFace
 
typedef Attachment< float > AFloat
 
typedef Attachment< GeomObjIDAGeomObjID
 An attachment which can store GeomObjIDs. More...
 
typedef Attachment< int > AInt
 
typedef Hash< AlgebraID, size_t > AlgebraIDHashList
 
typedef std::vector< AlgebraIDAlgebraIDVec
 
typedef ANormal3 ANormal
 
typedef AVector3 ANormal2
 
typedef AVector3 ANormal3
 
typedef Attachment< numberANumber
 
typedef APosition3 APosition
 
typedef AVector1 APosition1
 
typedef AVector2 APosition2
 
typedef AVector3 APosition3
 
typedef AVector2 ATexCoord
 
typedef Attachment< uintAUInt
 
typedef Attachment< vector1AVector1
 
typedef Attachment< vector2AVector2
 
typedef Attachment< vector3AVector3
 
typedef Attachment< vector4AVector4
 
typedef Attachment< Vertex * > AVertex
 
typedef Attachment< Volume * > AVolume
 
typedef geometry_traits< ConstrainedEdge >::const_iterator ConstConstrainedEdgeIterator
 
typedef geometry_traits< ConstrainedQuadrilateral >::const_iterator ConstConstrainedQuadrilateralIterator
 
typedef geometry_traits< ConstrainedTriangle >::const_iterator ConstConstrainedTriangleIterator
 
typedef geometry_traits< ConstrainedVertex >::const_iterator ConstConstrainedVertexIterator
 
typedef geometry_traits< ConstrainingEdge >::const_iterator ConstConstrainingEdgeIterator
 
typedef geometry_traits< ConstrainingQuadrilateral >::const_iterator ConstConstrainingQuadrilateralIterator
 
typedef geometry_traits< ConstrainingTriangle >::const_iterator ConstConstrainingTriangleIterator
 
typedef ElementStorage< Edge >::SectionContainer::const_iterator ConstEdgeIterator
 
typedef ElementStorage< Face >::SectionContainer::const_iterator ConstFaceIterator
 
typedef geometry_traits< Hexahedron >::const_iterator ConstHexahedronIterator
 
typedef geometry_traits< Octahedron >::const_iterator ConstOctahedronIterator
 
typedef geometry_traits< Prism >::const_iterator ConstPrismIterator
 
typedef geometry_traits< Pyramid >::const_iterator ConstPyramidIterator
 
typedef geometry_traits< Quadrilateral >::const_iterator ConstQuadrilateralIterator
 
typedef geometry_traits< ConstrainedEdge >::iterator ConstrainedEdgeIterator
 
typedef geometry_traits< ConstrainedQuadrilateral >::iterator ConstrainedQuadrilateralIterator
 
typedef geometry_traits< ConstrainedTriangle >::iterator ConstrainedTriangleIterator
 
typedef geometry_traits< ConstrainedVertex >::iterator ConstrainedVertexIterator
 
typedef geometry_traits< ConstrainingEdge >::iterator ConstrainingEdgeIterator
 
typedef geometry_traits< ConstrainingQuadrilateral >::iterator ConstrainingQuadrilateralIterator
 
typedef geometry_traits< ConstrainingTriangle >::iterator ConstrainingTriangleIterator
 
typedef geometry_traits< RegularEdge >::const_iterator ConstRegularEdgeIterator
 
typedef geometry_traits< RegularVertex >::const_iterator ConstRegularVertexIterator
 
typedef ConstSmartPtr< ProcessHierarchyConstSPProcessHierarchy
 
typedef geometry_traits< Tetrahedron >::const_iterator ConstTetrahedronIterator
 
typedef geometry_traits< Triangle >::const_iterator ConstTriangleIterator
 
typedef ElementStorage< Vertex >::SectionContainer::const_iterator ConstVertexIterator
 
typedef ElementStorage< Volume >::SectionContainer::const_iterator ConstVolumeIterator
 
typedef MultiIndex< 2 > DoFIndex
 type of DoF-Index used to identify an DoF in the Algebra More...
 
typedef Domain< 1, MultiGrid, MGSubsetHandlerDomain1d
 
typedef Domain< 2, MultiGrid, MGSubsetHandlerDomain2d
 
typedef Domain< 3, MultiGrid, MGSubsetHandlerDomain3d
 
typedef void * DynLibHandle
 Defines a reference to a dynamically loaded library. More...
 
typedef GeomObjDataSerializer< EdgeEdgeDataSerializer
 
typedef ElementStorage< EdgeEdgeElementStorage
 
typedef ElementStorage< Edge >::SectionContainer::iterator EdgeIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Edge, std::list > > EdgeLayout
 
typedef GeomObjDataSerializer< FaceFaceDataSerializer
 
typedef ElementStorage< FaceFaceElementStorage
 
typedef ElementStorage< Face >::SectionContainer::iterator FaceIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Face, std::list > > FaceLayout
 
typedef std::pair< int, size_t > GeomObjID
 The global id can be used to uniquely identify distributed objects. More...
 
typedef std::map< int, std::vector< AlgebraID > > GlobalLayout
 
typedef geometry_traits< Hexahedron >::iterator HexahedronIterator
 
typedef IGeometry< 1 > IGeometry1d
 
typedef IGeometry< 2 > IGeometry2d
 
typedef IGeometry< 3 > IGeometry3d
 
typedef pcl::SingleLevelLayout< pcl::OrderedInterface< size_t, std::vector > > IndexLayout
 
typedef std::list< KDVertexDistanceKDVertexDistanceList
 
typedef double lapack_double
 
typedef float lapack_float
 
typedef int lapack_ftnlen
 
typedef int lapack_int
 
typedef multimap< number, SweepLineEdge * > MapEdgeCuts
 
typedef MathMatrix< 2, 2, numbermatrix22
 a 2x2 matrix More...
 
typedef MathMatrix< 3, 3, numbermatrix33
 a 3x3 matrix More...
 
typedef MathMatrix< 4, 4, numbermatrix44
 a 4x4 matrix More...
 
typedef map< void *, MemTrackerStructMemTrackerMap
 
typedef geometry_traits< Octahedron >::iterator OctahedronIterator
 
typedef TParallelGlobalRefiner< GlobalMultiGridRefinerParallelGlobalRefiner_MultiGrid
 Parallel global refinement for multi-grids. More...
 
typedef vector< string > ParameterList
 
typedef std::pair< byte, int > ParentInfo
 Stores a tuple (type, index), identifying a parent. More...
 
typedef geometry_traits< Prism >::iterator PrismIterator
 
typedef boost::mpl::tmp::ProjectorTypes ProjectorTypes
 
typedef geometry_traits< Pyramid >::iterator PyramidIterator
 
typedef geometry_traits< Quadrilateral >::iterator QuadrilateralIterator
 
typedef geometry_traits< RegularEdge >::iterator RegularEdgeIterator
 
typedef geometry_traits< RegularVertex >::iterator RegularVertexIterator
 
typedef SmartPtr< IBalanceWeightsSPBalanceWeights
 
typedef SmartPtr< EdgeDataSerializerSPEdgeDataSerializer
 
typedef SmartPtr< ElementCallbackSPElementCallback
 
typedef SmartPtr< FaceDataSerializerSPFaceDataSerializer
 
typedef SmartPtr< GridDataSerializerSPGridDataSerializer
 
typedef SmartPtr< IGeometry1dSPIGeometry1d
 
typedef SmartPtr< IGeometry2dSPIGeometry2d
 
typedef SmartPtr< IGeometry3dSPIGeometry3d
 
typedef SmartPtr< IRefMarkAdjusterSPIRefMarkAdjuster
 
typedef SmartPtr< MessageHubSPMessageHub
 
typedef SmartPtr< MGHNodeAdjusterSPMGHNodeAdjuster
 
typedef node_tree::SPCollisionTreeRootNode SPOctree
 
typedef SmartPtr< ParallelHNodeAdjusterSPParallelHNodeAdjuster
 
typedef SmartPtr< IPartitionerSPPartitioner
 
typedef SmartPtr< IPartitionPostProcessorSPPartitionPostProcessor
 
typedef SmartPtr< ProcessHierarchySPProcessHierarchy
 
typedef SmartPtr< ProjectionHandlerSPProjectionHandler
 
typedef SmartPtr< RasterLayerDescSPRasterLayerDesc
 
typedef SmartPtr< RefinementProjectorSPRefinementProjector
 
typedef SmartPtr< StdHNodeAdjusterSPStdHNodeAdjuster
 
typedef SmartPtr< VertexDataSerializerSPVertexDataSerializer
 
typedef SmartPtr< VolumeDataSerializerSPVolumeDataSerializer
 
typedef Table< std::stringstream > StringStreamTable
 
typedef Table< std::string > StringTable
 
typedef SweepLineEdgeList::iterator SweepLineEdgeIter
 
typedef list< SweepLineEdgeSweepLineEdgeList
 
typedef geometry_traits< Tetrahedron >::iterator TetrahedronIterator
 
typedef geometry_traits< Triangle >::iterator TriangleIterator
 
typedef MathVector< 1, numbervector1
 a 1d vector More...
 
typedef MathVector< 2, numbervector2
 a 2d vector More...
 
typedef MathVector< 3, numbervector3
 a 3d vector More...
 
typedef MathVector< 4, numbervector4
 a 4d vector More...
 
typedef GeomObjDataSerializer< VertexVertexDataSerializer
 
typedef ElementStorage< VertexVertexElementStorage
 
typedef ElementStorage< Vertex >::SectionContainer::iterator VertexIterator
 This Iterator will be used as base-class for iterators of specialized geometric objects. More...
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Vertex, std::list > > VertexLayout
 
typedef GeomObjDataSerializer< VolumeVolumeDataSerializer
 
typedef ElementStorage< VolumeVolumeElementStorage
 
typedef ElementStorage< Volume >::SectionContainer::iterator VolumeIterator
 
typedef pcl::MultiLevelLayout< pcl::OrderedInterface< Volume, std::list > > VolumeLayout
 
typedef Base64FileWriter VTKFileWriter
 
typedef TElemSelector< VertexVertexSelector
 
typedef TElemSelector< EdgeEdgeSelector
 
typedef TElemSelector< FaceFaceSelector
 
typedef TElemSelector< VolumeVolumeSelector
 
typedef GridSubsetHandler SubsetHandler
 
typedef MultiGridSubsetHandler MGSubsetHandler
 

Enumerations

enum  { DIM_SUBSET_EMPTY_GRID = -1 }
 abbreviations for return types More...
 
enum  ATTACHMENT_CONSTANTS { INVALID_ATTACHMENT_INDEX = 0xFFFFFFFF }
 
enum  ConstraintType {
  CT_NONE = 0, CT_MAY_DEPEND_ON_HANGING = 1, CT_HANGING = 1 << 1, CT_CONSTRAINTS = 1 << 2,
  CT_DIRICHLET = 1 << 3, CT_ALL = CT_NONE | CT_MAY_DEPEND_ON_HANGING | CT_HANGING | CT_CONSTRAINTS | CT_DIRICHLET
}
 Types of constraint. More...
 
enum  ConstraintTypes { CT_NONE = 0, CT_CONSTRAINING = 1, CT_CONSTRAINED = 1 << 1 }
 
enum  DiscPart {
  NONE = 0, MASS = 1 << 0, STIFF = 1 << 1, RHS = 1 << 2,
  EXPL = 1 << 3, MAX_PART
}
 
enum  EdgeContainerSections { CSEDGE_NONE = -1, CSEDGE_REGULAR_EDGE = 0, CSEDGE_CONSTRAINED_EDGE = 1, CSEDGE_CONSTRAINING_EDGE = 2 }
 These numbers define where in the edge-section-container an edge will be stored. More...
 
enum  EdgeOptions { EDGEOPT_NONE = 0x00000000, EDGEOPT_STORE_ASSOCIATED_FACES = 0x00000100, EDGEOPT_STORE_ASSOCIATED_VOLUMES = 0x00000200 }
 Used to specify the way in which Grid manages edge-specific data. More...
 
enum  ElemDiscType {
  EDT_NONE = 0, EDT_ELEM = 1 << 0, EDT_SIDE = 1 << 1, EDT_BND = 1 << 2,
  EDT_ALL = EDT_NONE | EDT_SIDE | EDT_ELEM | EDT_BND
}
 Types of elem disc. More...
 
enum  ElementStatusTypes {
  ES_NONE = INT_NONE, ES_H_MASTER = INT_H_MASTER, ES_H_SLAVE = INT_H_SLAVE, ES_V_MASTER = INT_V_MASTER,
  ES_V_SLAVE = INT_V_SLAVE, ES_SCHEDULED_FOR_INTERFACE = 1 << 6, ES_IN_INTERFACE = 1 << 7
}
 the states with which elements are marked in ug::DistributedGridManager More...
 
enum  eMatrixOrdering { RowMajor = 0, ColMajor = 1 }
 
enum  eTransposeMode { ModeNoTrans = 0, ModeTranspose = 1, ModeConjTranspose = 2 }
 
enum  ExtrusionOptions { EO_CREATE_FACES = 1, EO_CREATE_VOLUMES = 1 << 1, EO_DEFAULT }
 used to specify the behavior of ug::Extrude. More...
 
enum  FaceContainerSections {
  CSFACE_NONE = -1, CSFACE_TRIANGLE = 0, CSFACE_QUADRILATERAL = 1, CSFACE_CONSTRAINED_TRIANGLE = 2,
  CSFACE_CONSTRAINED_QUADRILATERAL = 3, CSFACE_CONSTRAINING_TRIANGLE = 4, CSFACE_CONSTRAINING_QUADRILATERAL = 5, CSFACE_USER
}
 These numbers define where in the face-section-container a face will be stored. More...
 
enum  FaceOptions { FACEOPT_NONE = 0x00000000, FACEOPT_STORE_ASSOCIATED_EDGES = 0x00010000, FACEOPT_STORE_ASSOCIATED_VOLUMES = 0x00020000, FACEOPT_AUTOGENERATE_EDGES = 0x00080000 }
 Used to specify the way in which Grid manages face-specific data. More...
 
enum  GlobalBoundaryRefinementRule { LINEAR, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_VOL }
 identification of boundary refinement rule to be used More...
 
enum  GridBaseObjectId {
  VERTEX = 0, EDGE, FACE, VOLUME,
  NUM_GEOMETRIC_BASE_OBJECTS
}
 enumeration of the GridBaseObjects that make up a grid. More...
 
enum  GridHeaderConstants { GHC_HEADER_BEGIN = 1, GHC_HEADER_END = 2, GHC_READ_OPTIONS = 3 }
 
enum  GridHeaderReadOptions { GHRO_READ_DEFAULT = 0, GHRO_READ_LEVELS = 1 << 0, GHRO_READ_PARENTS = 1 << 1 }
 
enum  GridMessageAdaptionType {
  GMAT_UNKNOWN = 0, GMAT_GLOBAL_ADAPTION_BEGINS, GMAT_HNODE_ADAPTION_BEGINS, GMAT_GLOBAL_ADAPTION_ENDS,
  GMAT_HNODE_ADAPTION_ENDS, GMAT_GLOBAL_REFINEMENT_BEGINS, GMAT_HNODE_REFINEMENT_BEGINS, GMAT_GLOBAL_REFINEMENT_ENDS,
  GMAT_HNODE_REFINEMENT_ENDS, GMAT_GLOBAL_COARSENING_BEGINS, GMAT_HNODE_COARSENING_BEGINS, GMAT_GLOBAL_COARSENING_ENDS,
  GMAT_HNODE_COARSENING_ENDS
}
 constants which indicate the adaption type in a grid refinement message. More...
 
enum  GridMessageCreationType { GMCT_NONE, GMCT_CREATION_STARTS, GMCT_CREATION_STOPS }
 Instances of this class inform about grid creation (e.g. during load or distribution) More...
 
enum  GridMessageDistributionType { GMDT_NONE, GMDT_DISTRIBUTION_STARTS, GMDT_DISTRIBUTION_STOPS }
 Instances of this class inform about distribution. More...
 
enum  GridMessageMultiGridChangedType { GMMGCT_LEVEL_ADDED = 1, GMMGCT_REMOVED = 2 }
 
enum  GridObjectID {
  GOID_VERTEX = 0, GOID_EDGE = 1, GOID_TRIANGLE = 2, GOID_QUADRILATERAL = 3,
  GOID_TETRAHEDRON = 4, GOID_PYRAMID = 5, GOID_PRISM = 6, GOID_OCTAHEDRON = 7,
  GOID_HEXAHEDRON = 8, GOID_NUM_GRID_OBJECT_IDS
}
 
enum  GridOptions {
  GRIDOPT_NONE = 0x00000000, GRIDOPT_NO_INTERCONNECTION = 0x00000000, GRIDOPT_VERTEXCENTRIC_INTERCONNECTION, GRIDOPT_AUTOGENERATE_SIDES,
  GRIDOPT_STANDARD_INTERCONNECTION, GRIDOPT_FULL_INTERCONNECTION, GRIDOPT_DEFAULT
}
 Specify how references between associated objects are stored in a grid. More...
 
enum  GridSerializationID {
  GSID_END_OF_GRID = -2, GSID_INVALID = -1, GSID_GEOMETRIC_OBJECT = 0, GSID_VERTEX_BASE = 10,
  GSID_VERTEX = 11, GSID_HANGING_VERTEX = 12, GSID_EDGE_BASE = 20, GSID_EDGE = 21,
  GSID_CONSTRAINED_EDGE = 22, GSID_CONSTRAINING_EDGE = 23, GSID_FACE = 30, GSID_TRIANGLE = 31,
  GSID_CONSTRAINED_TRIANGLE = 32, GSID_CONSTRAINING_TRIANGLE = 33, GSID_QUADRILATERAL = 40, GSID_CONSTRAINED_QUADRILATERAL = 41,
  GSID_CONSTRAINING_QUADRILATERAL = 42, GSID_VOLUME = 60, GSID_TETRAHEDRON = 61, GSID_HEXAHEDRON = 70,
  GSID_PRISM = 80, GSID_PYRAMID = 90, GSID_OCTAHEDRON = 100, GSID_NEW_LEVEL = 1000
}
 
enum  InterfaceNodeTypes {
  INT_NONE = 0, INT_H_MASTER = 1, INT_H_SLAVE = 1<<1, INT_V_MASTER = 1<<2,
  INT_V_SLAVE = 1<<3
}
 
enum  InterfaceStates {
  IS_UNASSIGNED = 0, IS_NORMAL = 1, IS_VMASTER = 1<<1, IS_VSLAVE = 1<<2,
  IS_DUMMY = 1<<3, HAS_PARENT = 1<<4
}
 
enum  KDSplitDimension { KDSD_CIRCULAR, KDSD_LARGEST }
 used by KDTreeStatic More...
 
enum  KDTreeSplitStrategy { KDTSS_CIRCULAR, KDTSS_LARGEST }
 
enum  LGBConstants { LGBC_NONE = 0, LGBC_POS2D = 1, LGBC_POS3D = 1 << 1, LGBC_SUBSET_HANDLER = 1 << 2 }
 
enum  matrix_algebra_type { MATRIX_USE_ROW_FUNCTIONS, MATRIX_USE_GLOBAL_FUNCTIONS, MATRIX_USE_OPERATORS, MATRIX_USE_MEMBER_FUNCTIONS }
 
enum  NeighborhoodType {
  NHT_DEFAULT = 0, NHT_VERTEX_NEIGHBORS = 1, NHT_EDGE_NEIGHBORS = 1<<1, NHT_FACE_NEIGHBORS = 1<<2,
  NHT_VOLUME_NEIGHBORS = 1<<3, NHT_ALL
}
 Constants to specify a neighborhood. More...
 
enum  ObserverType {
  OT_NONE = 0, OT_GRID_OBSERVER = 1, OT_VERTEX_OBSERVER = 2, OT_EDGE_OBSERVER = 4,
  OT_FACE_OBSERVER = 8, OT_VOLUME_OBSERVER = 16, OT_FULL_OBSERVER
}
 
enum  ParallelStorageType { PST_UNDEFINED = 0, PST_CONSISTENT = 1 << 0, PST_ADDITIVE = 1 << 1, PST_UNIQUE = 1 << 2 }
 
enum  PathTypes {
  BIN_PATH = 0, SCRIPT_PATH, ROOT_PATH, PLUGIN_PATH,
  APPS_PATH, MAX_PATH_CONSTANT
}
 Constants used by PathProvider. More...
 
enum  PolyChainTypes {
  PCT_UNKNOWN = 0, PCT_CLOSED = 1, PCT_OPEN = 1 << 1, PCT_SEPARATED = 1 << 2,
  PCT_IRREGULAR = 1 << 3, PCT_EMPTY = 1 << 4
}
 
enum  ProcessType { PT_ALL =0, PT_STATIONARY, PT_INSTATIONARY, MAX_PROCESS }
 
enum  ReferenceObjectID {
  ROID_UNKNOWN = -1, ROID_VERTEX, ROID_EDGE, ROID_TRIANGLE,
  ROID_QUADRILATERAL, ROID_TETRAHEDRON, ROID_HEXAHEDRON, ROID_PRISM,
  ROID_PYRAMID, ROID_OCTAHEDRON, NUM_REFERENCE_OBJECTS
}
 these ids are used to identify the shape of a geometric object. More...
 
enum  RefinementMark {
  RM_NONE = 0, RM_COPY = 1, RM_CLOSURE = 1 << 1, RM_ANISOTROPIC = 1 << 2,
  RM_REFINE = 1 << 3, RM_COARSEN = 1 << 4, RM_DUMMY = 1 << 5, RM_MAX
}
 refinement-marks allow to specify how an element shall be processed during refinement. More...
 
enum  RemeshingElementMarks { REM_NONE = -1, REM_CREASE = 0, REM_FIXED = 1 }
 
enum  slice_desc_type { SD_INNER =0, SD_SKELETON, SLICE_DESC_SIZE }
 
enum  SweepLineEdgeStatus { SLES_UNKNOWN = 0, SLES_RIM }
 
enum  SweepLineVertexStatus {
  SLVS_NONE = 0, SLVS_START, SLVS_END, SLVS_REGULAR,
  SLVS_SPLIT, SLVS_MERGE
}
 
enum  TraversalStates { DONT_TRAVERSE_CHILDREN, TRAVERSE_CHILDREN, ABORT_TRAVERSAL }
 
enum  VertexContainerSections { CSVRT_NONE = -1, CSVRT_REGULAR_VERTEX = 0, CSVRT_CONSTRAINED_VERTEX = 1 }
 These numbers define where in the vertex-section-container a vertex will be stored. More...
 
enum  VertexOptions { VRTOPT_NONE = 0x00000000, VRTOPT_STORE_ASSOCIATED_EDGES = 0x00000001, VRTOPT_STORE_ASSOCIATED_FACES = 0x00000002, VRTOPT_STORE_ASSOCIATED_VOLUMES = 0x00000004 }
 Used to specify the way in which Grid manages vertex-specific data. More...
 
enum  VolumeContainerSections {
  CSVOL_NONE = -1, CSVOL_TETRAHEDRON = 0, CSVOL_HEXAHEDRON = 1, CSVOL_PRISM = 2,
  CSVOL_PYRAMID = 3, CSVOL_OCTAHEDRON = 4
}
 These numbers define where in the volume-section-container a volume will be stored. More...
 
enum  VolumeOptions {
  VOLOPT_NONE = 0x00000000, VOLOPT_STORE_ASSOCIATED_EDGES = 0x01000000, VOLOPT_STORE_ASSOCIATED_FACES = 0x02000000, VOLOPT_AUTOGENERATE_EDGES = 0x08000000,
  VOLOPT_AUTOGENERATE_FACES = 0x10000000
}
 Used to specify the way in which Grid manages volume-specific data. More...
 
enum  VTKCellTypes {
  VTK_VERTEX = 1, VTK_POLY_VERTEX = 2, VTK_LINE = 3, VTK_POLY_LINE = 4,
  VTK_TRIANGLE = 5, VTK_TRIANGLE_STRIP = 6, VTK_POLYGON = 7, VTK_PIXEL = 8,
  VTK_QUAD = 9, VTK_TETRA = 10, VTK_VOXEL = 11, VTK_HEXAHEDRON = 12,
  VTK_WEDGE = 13, VTK_PYRAMID = 14, VTK_QUADRATIC_EDGE = 21, VTK_QUADRATIC_TRIANGLE = 22,
  VTK_QUADRATIC_QUAD = 23, VTK_QUADRATIC_TETRA = 24, VTK_QUADRATIC_HEXAHEDRON = 25, VTK_NUM_TYPES
}
 
enum  SelectorElements {
  SE_NONE = 0, SE_VERTEX = 1, SE_EDGE = 1<<1, SE_FACE = 1<<2,
  SE_VOLUME = 1 << 3, SE_ALL = SE_VERTEX | SE_EDGE | SE_FACE | SE_VOLUME
}
 Use these constants to specify which elements shall be supported by a Selector. More...
 
enum  SubsetHandlerElements {
  SHE_NONE = 0, SHE_VERTEX = 1, SHE_EDGE = 1<<1, SHE_FACE = 1<<2,
  SHE_VOLUME = 1 << 3, SHE_ALL = SHE_VERTEX | SHE_EDGE | SHE_FACE | SHE_VOLUME
}
 Use these constants to specify which elements shall be supported by a SubsetHandler. More...
 
enum  SubsetState { SS_NONE = 0, SS_USER_STATE = 1 << 16 }
 The SubsetState is not yet really used inside of libGrid. More...
 

Functions

void AbortRun ()
 sets a flag, that the current run shall be aborted during the next call of TerminateAbortedRun() More...
 
bool absCompare (double a, double b)
 
bool AdaptSurfaceGridToCylinder (Selector &selOut, Grid &grid, Vertex *vrtCenter, const vector3 &normal, number radius, number rimSnapThreshold, AInt &aInt, APosition &aPos=aPosition)
 Performs local remeshing so that the grid is adapted to the given cylinder. More...
 
bool AdaptSurfaceGridToCylinder (Selector &selOut, Grid &grid, Vertex *vrtCenter, const vector3 &normal, number radius, number rimSnapThreshold, APosition &aPos=aPosition)
 Performs local remeshing so that the grid is adapted to the given cylinder. More...
 
void AddAllFromInterface (std::set< size_t > &s, const IndexLayout::Interface &interface)
 
void AddAllFromLayout (std::set< size_t > &s, const IndexLayout &layout)
 
void AddConnectionsBetweenSlaves (pcl::InterfaceCommunicator< IndexLayout > &communicator, IndexLayout &masterLayout, IndexLayout &slaveLayout, IndexLayout &allToAllSend, IndexLayout &allToAllReceive)
 
template<class TLayout >
bool AddEntriesToIndexLayout_DomainDecomposition (IndexLayout &processLayoutOut, IndexLayout &subdomainLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, pcl::IDomainDecompositionInfo *ddInfoIn)
 
template<class TLayout >
bool AddEntriesToLevelIndexLayout (IndexLayout &indexLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, const std::map< int, std::vector< bool > > *pIgnoreMap=NULL)
 
template<class TLayout >
bool AddEntriesToSurfaceIndexLayout (IndexLayout &indexLayoutOut, DoFDistribution &dofDistr, TLayout &elemLayout, MultiGrid &mg, DistributedGridManager &dGrMgr)
 
bool AddExtraProcessEntriesToSubdomainLayout (size_t numIDs, IndexLayout &processMasterLayoutIn, IndexLayout &processSlaveLayoutIn, IndexLayout &subdomainMasterLayoutInOut, IndexLayout &subdomainSlaveLayoutInOut)
 
template<class TElem >
static void AddGlobalAttachmentsToSerializer (GridDataSerializationHandler &handler, Grid &grid)
 Adds serializers for all registered global attachments. More...
 
template<class TDomain >
static void AddHorizontalAnisotropyAdjuster (IRefiner *ref, TDomain *dom)
 Adds a horizontal-anisotropy-adjuster to the given refiner. More...
 
void AddIfUnique (IndexLayout::Interface &interface, size_t i)
 
template<typename TGlobalToLocal >
void AddLayoutFromGlobalLayout (IndexLayout &layout, GlobalLayout &globalLayout, TGlobalToLocal &globalToLocal, bool bRemoveDoubles=true)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool AddLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool AddLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TMatrix >
void AddLocalMatrixToGlobal (TMatrix &mat, const LocalMatrix &lmat)
 
template<typename TVector >
void AddLocalVector (TVector &vec, const LocalVector &lvec)
 
template<typename A , typename B , typename C >
void AddMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
void AddMult (number &dest, const number &b, const number &vec)
 
template<typename A , typename B , typename C >
void AddMult (DenseMatrix< A > &dest, const DenseMatrix< B > &mA, const DenseMatrix< C > &mB)
 
template<typename A , typename B , typename C >
void AddMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B >
void AddMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B >
void AddMult (DenseVector< A > &dest, const double &b, const A &vec)
 
template<typename A >
void AddMult (A &dest, const A &vec, const double &b)
 
template<typename ABC_type , typename A_type , typename B_type , typename C_type >
void AddMultiplyOf (ABC_type &M, const A_type &A, const B_type &B, const C_type &C, double epsilonTruncation=0.0)
 Calculates M += A*B*C. More...
 
template<class TElem >
static void AddTargetProcToDistInfos (MGSelector &msel, DistInfoSupplier &distInfos, int targetProc)
 
bool AdjustEdgeLength (Grid &grid, SubsetHandler &shMarks, number minEdgeLen, number maxEdgeLen, int numIterations, bool projectPoints, bool adaptive)
 
bool AdjustEdgeLength (Grid &grid, SubsetHandler &shMarks, const AdjustEdgeLengthDesc &desc, int numIterations)
 
template<class TEdgeIterator >
UG_API void AdjustEdgeOrientationToFaceOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 Orientates boundary edges in the given edge set to the orientation of associated faces. More...
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::vector< std::string > &vCmp, number mean)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::vector< std::string > &vCmp)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::string &fcts)
 
template<typename TGridFunction >
void AdjustMeanValue (SmartPtr< TGridFunction > spGF, const std::string &fcts, number mean)
 
static void AdjustSelection (Grid &grid, Selector &sel)
 
void AdjustSubsetsForLgmNg (Grid &grid, SubsetHandler &sh, bool keepExistingInterfaceSubsets=false)
 reorders subsets in a way that allows for easy export to lgm-ng. More...
 
template<class TSubsetHandler >
void AdjustSubsetsForSimulation (TSubsetHandler &sh, bool preserveExistingSubsets)
 Adjust the grid so that it is ready for simulation with ug4. More...
 
AGeomObjID aGeomObjID ("globalID", false)
 
DebugID APP ("APP")
 
void AppendCounterToString (string &str, string indicator, int counter, int maxCounter)
 
UG_API void AppendCounterToString (std::string &str, std::string indicator, int counter, int maxCounter=-1)
 appends a counter number to a string More...
 
template<typename TLayout >
bool AppendInterface (TLayout &layout, int pidSource, int pidAppendTo)
 
UG_API std::string AppendSpacesToString (std::string &str, int totalLength)
 padding a string with spaces to predefined length More...
 
string AppendSpacesToString (string &str, int totalLength)
 
template<typename vector_type >
bool ApplyLinearSolver (SmartPtr< ILinearOperator< vector_type > > A, vector_type &u, vector_type &b, SmartPtr< ILinearOperatorInverse< vector_type > > solver)
 
void ApplySmoothManifoldPosToTopLevelAveragingScheme (MultiGrid &mg, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (Averaging scheme) More...
 
void ApplySmoothManifoldPosToTopLevelLoopScheme (MultiGrid &mg, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
void ApplySmoothSubdivisionSurfacesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 Function to create a smooth subdivision volumes hierarchy. More...
 
void ApplySmoothSubdivisionVolumesToTopLevel (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &markSH, const char *linearManifoldSubsets)
 Function to create a smooth subdivision volumes hierarchy. More...
 
void ApplySmoothVolumePosToTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH)
 Toplevel vertex repositioning function for subdivision volumes refinement. More...
 
template<class TIterator >
number AreaFaceQuality (TIterator facesBegin, TIterator facesEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns a value between 0 (bad) and 1 (good) that describes the quality of the area. More...
 
template<class TIterator >
UG_API number AreaFaceQuality (TIterator facesBegin, TIterator facesEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns a value between 0 (bad) and 1 (good) that describes the quality of the area. More...
 
template<class TType >
int ArrayEraseEntry (TType *array, const TType &entry, size_t size)
 removes the first occurance of the specified entry. More...
 
template<class TType >
bool ArrayReplaceEntry (TType *array, const TType &newEntry, const TType &oldEntry, size_t size)
 replaces the first occurance of oldEntry with newEntry More...
 
template<class TType >
void ArraySwapWithLast (TType *array, const TType &entry, size_t size)
 Swaps the first entry with the given value with the last entry in the list. More...
 
template<int dim, typename TAlgebra >
void AssembleInjectionByAverageOfChildren (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleInjectionByAverageOfChildren (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleInjectionForP1Lagrange (typename TAlgebra::matrix_type &mat, const DoFDistribution &coarseDD, const DoFDistribution &fineDD)
 
template<typename TAlgebra >
void AssembleLinearOperatorRhsAndSolution (AssembledLinearOperator< TAlgebra > &op, typename TAlgebra::vector_type &u, typename TAlgebra::vector_type &b)
 help function to assemble a linear operator More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedEdgesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated edges of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedFacesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated faces of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Volume &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Face &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler, const Edge &)
 helper with with dummy-param for compile-time function selection. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedLowerDimElemsToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler)
 Assigns associated elements of elements of type TElem in sh to sh. More...
 
template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void AssignAssociatedSidesToSubsets (TSubsetHandlerDest &sh, const TSubsetHandlerSrc &srcIndHandler)
 Assigns associated sides of elements of type TElem in sh to sh. More...
 
template<class TIterator >
void AssignAssociatedVerticesToSubset (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, int subsetIndex)
 assigns vertices of the given elements to the subset at subsetIndex More...
 
template<class TElem , class TSubsetHandler >
void AssignAssociatedVerticesToSubsets (TSubsetHandler &sh, const ISubsetHandler &srcIndHandler)
 Assigns associated vertices of elements of type TElem in sh to sh. More...
 
static void AssignCreaseVertices (Grid &grid, SubsetHandler &shMarks)
 
static void AssignCreaseVertices (Grid &grid, SubsetHandler &shMarks)
 
void AssignFaceInterfaceEdgesToSubsets (Grid &grid, SubsetHandler &sh)
 assigns edges which belong to no subset and are adjacent to faces of different subsets to new subsets. More...
 
static void AssignFixedVertices (Grid &grid, SubsetHandler &shMarks)
 
static void AssignFixedVertices (Grid &grid, SubsetHandler &shMarks)
 
void AssignGridToSubset (Grid &g, ISubsetHandler &sh, int subsetInd)
 Assigns all elements of the given grid to the given subset. More...
 
template<class TIterator , class TAAInt >
void AssignIndices (TIterator begin, TIterator end, TAAInt &aaInt, int baseIndex=0)
 assigns indices to the elements between begin and end. More...
 
template<class TElem >
void AssignIndices (typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, Grid::AttachmentAccessor< TElem, AInt > &aaInt)
 
void AssignInnerAndBoundarySubsets (Grid &grid, ISubsetHandler &shOut, int inSubset, int bndSubset)
 assigns objects to subsets depending on whether they are inner or boundary objects. More...
 
template<typename A , typename B , typename C >
void AssignMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
template<typename A , typename B , typename C >
void AssignMult (DenseMatrix< A > &dest, const DenseMatrix< B > &mA, const DenseMatrix< C > &mB)
 
void AssignMult (number &dest, const number &b, const number &vec)
 
template<typename A , typename B , typename C >
void AssignMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B >
void AssignMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B >
void AssignMult (DenseVector< A > &dest, const double &b, const DenseVector< B > &vec)
 
template<typename A >
void AssignMult (A &dest, const A &vec, const double &b)
 
void AssignRegionToSubset (Grid &grid, ISubsetHandler &shVolsOut, const ISubsetHandler &shFaces, Volume *proxyVol, int newSubsetIndex)
 assigns a region of volumes to a subset. More...
 
template<class TElem , class TSelector >
void AssignSelectionStateToSides (TSelector &sel, bool recursive)
 Assigns the selection state of selected elements to associated sides. More...
 
void AssignSelectionToSubset (ISelector &sel, ISubsetHandler &sh, int subsetInd)
 Assigns all selected elements to the specified subset. More...
 
template<class TElem >
void AssignSidesToSubsets (ISubsetHandler &sh, ISelector *psel=NULL)
 Assigns all sides of elements of the given type to a separate subset. More...
 
template void AssignSidesToSubsets< Edge > (ISubsetHandler &, ISelector *)
 
template void AssignSidesToSubsets< Face > (ISubsetHandler &, ISelector *)
 
template void AssignSidesToSubsets< Volume > (ISubsetHandler &, ISelector *)
 
void AssignSubsetColors (ISubsetHandler &sh)
 assigns a different color to each subset More...
 
template<class TElem >
static void AssignSubsetsByInterfaceType (SubsetHandler &sh, MultiGrid &mg)
 
template<class TIterator >
bool AssignSubsetsByQuality (Grid &grid, SubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, std::vector< number > intervals)
 assigns a subset based on the quality of the given element. More...
 
template<class TElem >
static void AssignSubsetsBySurfaceViewState (SubsetHandler &sh, const SurfaceView &sv, MultiGrid &mg)
 
bool AssignTetrahedronAttributesByAspectRatio (Grid &grid, SubsetHandler &shVolume, AInt &aTetrahedronAspectRatioClass, vector< double > &offsets, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 assigns attributes to tetrahedral elements of a grid respecting their aspect ratio More...
 
bool AssignTetrahedronAttributesByAspectRatio (Grid &grid, SubsetHandler &shVolume, AInt &aTetrahedronAspectRatioClass, std::vector< double > &offsets, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 assigns tetrahedral elements of a grid to subsets respecting their aspect ratio More...
 
template<class TElem , class TSubsetHandler >
void AssignUnassignedElemsToSubset (TSubsetHandler &sh, int si)
 Assigns all elements of type TElem with subset index -1 to subset at index si. More...
 
template<class TElem >
static void AssignVerticalMasterAndSlaveStates (MGSelector &msel, bool partitionForLocalProc)
 
void AssignVolumeInterfaceFacesToSubsets (Grid &grid, SubsetHandler &sh)
 assigns faces which belong to no subset and are adjacent to volumes of different subsets to new subsets. More...
 
template<typename TElem , typename AType >
void AttachmentAllReduce (Grid &grid, AType aValue, pcl::ReduceOperation op)
 
template<typename TDomain , typename TAlgebra >
number AverageFunctionDifference (SmartPtr< GridFunction< TDomain, TAlgebra > > spGridFct, std::string subset, std::string fct1, std::string fct2)
 Calculates the average of the pointwise difference of two functions on given subset. More...
 
template<typename TPosition >
void AveragePositions (TPosition &vOut, const TPosition *vCornerCoords, size_t num)
 averages positions by arithmetic mean More...
 
template<typename TSparseMatrix , typename vector_t >
bool Axpy_transposedCommonSparseMatrix (const TSparseMatrix &A, vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1)
 
template<typename TSparseMatrix , typename vector_t >
bool AxpyCommonSparseMatrix (const TSparseMatrix &A, vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const vector_t &w1)
 
template<typename Matrix_type , typename Vector_type >
void backward_gs_step (Vector_type &c, const Matrix_type &A, const Vector_type &d, const size_t i, const number relaxFactor)
 
void baseName (std::string &nameOut, const std::string &nameIn)
 
static int Bevel2d (const vector3 &p)
 
static int Bevel3d (const vector3 &p)
 
int BinomCoeff (int n, int k)
 Returns the BinomialCoefficient. More...
 
template<size_t Tr, size_t Tc>
bool BlockDeserialize (std::istream &buff, const DenseMatrix< FixedArray2< number, Tr, Tc > > &mat)
 
template<typename TBlock >
bool BlockMatrixFiniteAndNotTooBig (TBlock &m, double tooBigValue=1e24)
 
template<typename TMatrix >
void BlockMatrixToDoubleMatrix (DenseMatrix< VariableArray2< double > > &Ad, TMatrix &Ab)
 
template<typename TYPE >
double BlockNorm (const TYPE &v)
 
template<typename T >
number BlockNorm (const T &t)
 
template<>
number BlockNorm (const number &a)
 
template<typename A >
double BlockNorm2 (const DenseMatrix< A > &mat)
 
template<typename TYPE >
double BlockNorm2 (const TYPE &v)
 
template<typename A >
double BlockNorm2 (const DenseVector< A > &v)
 
template<typename T >
number BlockNorm2 (const T &t)
 
template<>
number BlockNorm2 (const number &a)
 
template<typename T >
double & BlockRef (T &vec, size_t i)
 
template<typename T >
const double & BlockRef (const T &vec, size_t i)
 
template<typename T >
double & BlockRef (T &mat, size_t i, size_t j)
 
template<typename T >
const double & BlockRef (const T &mat, size_t i, size_t j)
 
template<>
numberBlockRef (number &m, size_t i)
 
template<>
const numberBlockRef (const number &m, size_t i)
 
template<>
numberBlockRef (number &m, size_t i, size_t j)
 
template<>
const numberBlockRef (const number &m, size_t i, size_t j)
 
template<size_t Tr, size_t Tc>
bool BlockSerialize (const DenseMatrix< FixedArray2< number, Tr, Tc > > &mat, std::ostream &buff)
 
template<typename TBlock >
bool BlockVectorFiniteAndNotTooBig (TBlock &v, double tooBigValue=1e24)
 
template<class T >
void BlurField (Field< T > &field, number alpha, size_t numIterations, const T &noDataValue)
 Smoothens the field by adjusting the value of each pixel towards the average of its neighbours. More...
 
template<class vector_t >
bool BoxBoundProbe (const vector_t &v, const vector_t &boxMin, const vector_t &boxMax)
 Returns true if the point lies inside or on the boundary of the box. More...
 
template<class vector_t >
bool BoxBoxIntersection (const vector_t &box1Min, const vector_t &box1Max, const vector_t &box2Min, const vector_t &box2Max)
 checks whether two boxes intersect. More...
 
void BroadcastGrid (Grid &gridOut, Selector &sel, GridDataSerializationHandler &serializer, GridDataSerializationHandler &deserializer, int root, const pcl::ProcessCommunicator &procCom=pcl::ProcessCommunicator())
 Broadcasts the specified Selection from 'root' to all processes in procCom. More...
 
template<typename T >
void BroadcastVectorFromOne (HorizontalAlgebraLayouts &agglomerationLayout, ParallelVector< T > &vec, const ParallelVector< T > &collectedVec, ParallelStorageType type)
 
template<typename T >
void BroadcastVectorFromOne (IndexLayout &agglomeratedMaster, IndexLayout &agglomeratedSlave, pcl::InterfaceCommunicator< IndexLayout > &com, ParallelVector< T > &vec, const ParallelVector< T > &collectedVec, ParallelStorageType type, bool bRoot)
 
void BuildDomainDecompositionLayouts (IndexLayout &subdomMastersOut, IndexLayout &subdomSlavesOut, IndexLayout &processMastersOut, IndexLayout &processSlavesOut, IndexLayout &deltaNbrMastersOut, IndexLayout &deltaNbrSlavesOut, IndexLayout &crossPointMastersOut, IndexLayout &crossPointSlavesOut, const IndexLayout &standardMasters, const IndexLayout &standardSlaves, int highestReferencedIndex, IDomainDecompositionInfo &ddinfo)
 
int BuildOneToManyLayout (IndexLayout &masterLayoutOut, IndexLayout &slaveLayoutOut, int rootProcID, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::ProcessCommunicator procComm, std::vector< int > *pNewMasterIDsOut)
 
void CalcTotalMem (const Shiny::ProfileNode *p)
 
template<class TAAPosVRT >
number CalculateAverageCurvature (Grid &grid, SubsetHandler &shMarks, Edge *e, TAAPosVRT &aaPos)
 
template<class TVrtIter , class TAPosition >
TAPosition::ValueType CalculateBarycenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::VertexAttachmentAccessor< TAPosition > &aaPos)
 calculates the barycenter of a set of vertices More...
 
template<class TVrtIter , class TAPosition >
UG_API TAPosition::ValueType CalculateBarycenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::VertexAttachmentAccessor< TAPosition > &aaPos)
 calculates the barycenter of a set of vertices More...
 
template<class TAAPosVRT >
void CalculateBoundaryVertexNormal2D (typename TAAPosVRT::ValueType &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated faces More...
 
template<class TAAPosVRT >
UG_API void CalculateBoundaryVertexNormal2D (typename TAAPosVRT::ValueType &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated faces More...
 
template<class TAAPosVRT >
void CalculateBoundaryVertexNormal3D (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated volumes More...
 
template<class TAAPosVRT >
UG_API void CalculateBoundaryVertexNormal3D (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a boundary vertex using associated volumes More...
 
template<class TAAPos >
AABox< typename TAAPos::ValueType > CalculateBoundingBox (Vertex *e, TAAPos aaPos)
 calculates the smallest axis aligned box that contains the given vertex More...
 
template<class TElem , class TAAPos >
AABox< typename TAAPos::ValueType > CalculateBoundingBox (TElem *e, TAAPos aaPos)
 calculates the smallest axis aligned box that contains the given element More...
 
template<class vector_t , class TIterator , class TAAPos >
UG_API void CalculateBoundingBox (vector_t &vMinOut, vector_t &vMaxOut, TIterator begin, TIterator end, TAAPos &aaPos)
 Calculates the bounding box of a set of geometric objects. More...
 
template<class TVrtIter , class TAPosition >
void CalculateBoundingBox (typename TAPosition::ValueType &vMinOut, typename TAPosition::ValueType &vMaxOut, TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the BoundingBox More...
 
template<class vector_t , class TIterator , class TAAPos >
void CalculateBoundingBox (vector_t &vMinOut, vector_t &vMaxOut, TIterator begin, TIterator end, TAAPos &aaPos)
 Calculates the bounding box of a set of geometric objects. More...
 
template<class TVrtIter , class TAPosition >
UG_API void CalculateBoundingBox (typename TAPosition::ValueType &vMinOut, typename TAPosition::ValueType &vMaxOut, TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the BoundingBox More...
 
template<class TAAPos >
Sphere< typename TAAPos::ValueType > CalculateBoundingSphere (FaceVertices *face, TAAPos aaPos)
 
template<class TAAPosVRT >
bool CalculateCenter (typename TAAPosVRT::ValueType &centerOut, Selector &sel, TAAPosVRT &aaPos)
 calculates the center of selected objects More...
 
template<class TIterator , class TAAPosVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (TIterator begin, TIterator end, TAAPosVRT &aaPos)
 calculates the center for a set of elements More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const VolumeVertices *vol, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a volume by averaging the positions of its corners More...
 
template<class TIterator , class TAAPosVRT >
TAAPosVRT::ValueType CalculateCenter (TIterator begin, TIterator end, TAAPosVRT &aaPos)
 calculates the center for a set of elements More...
 
template<class vector_t >
void CalculateCenter (vector_t &centerOut, const vector_t *pointSet, size_t numPoints)
 calculates the center of a point-set More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Edge *e, TVertexPositionAttachmentAccessor &aaPosVRT)
 Calculates the center of an edge. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const VolumeVertices *vol, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a volume by averaging the positions of its corners More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const VolumeVertices *vol, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given volume More...
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const FaceVertices *f, TVertexPositionAttachmentAccessor &aaPosVRT)
 
template<class TVertexPositionAttachmentAccessor >
TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Vertex *v, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the position of the vertex. More...
 
template<class TVrtIter , class TAPosition >
TAPosition::ValueType CalculateCenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the center of a set of vertices. More...
 
template<class TVrtIter , class TAPosition >
UG_API TAPosition::ValueType CalculateCenter (TVrtIter vrtsBegin, TVrtIter vrtsEnd, Grid::AttachmentAccessor< Vertex, TAPosition > &aaPos)
 calculates the center of a set of vertices. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Edge *e, TVertexPositionAttachmentAccessor &aaPosVRT)
 Calculates the center of an edge. More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const EdgeVertices *e, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given edge More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const FaceVertices *f, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given face More...
 
void CalculateCovarianceMatrix (matrix33 &matOut, const vector3 *pointSet, const vector3 &center, size_t numPoints)
 Calculates the covariance matrix of a given point-set. More...
 
template<class TAAPosVRT >
TAAPosVRT::ValueType CalculateCreaseNormal (Grid &grid, Face *f, Vertex *vrt, Grid::edge_traits::callback funcIsCreaseEdge, TAAPosVRT &aaPos)
 returns true if the vertex lies on a surface. More...
 
template<class TAAPosVRT >
TAAPosVRT::ValueType CalculateCreaseNormal (Grid &grid, Volume *vol, Vertex *vrt, Grid::face_traits::callback funcIsCreaseFace, TAAPosVRT &aaPos)
 calculates the normal of the crease vertex vrt on the side of vol More...
 
bool CalculateEigenvalues (const ug::matrix33 &mat, number &lambdaMinOut, number &lambdaMedOut, number &lambdaMaxOut, ug::vector3 &evMinOut, ug::vector3 &evMedOut, ug::vector3 &evMaxOut)
 
void CalculateFaceNormals (Grid &grid, const FaceIterator &facesBegin, const FaceIterator &facesEnd, AVector3 &aPos, AVector3 &aNorm)
 calculates the normal of each face. Presumes that all faces are flat. More...
 
template<class TAAPosVRT >
UG_API TAAPosVRT::ValueType CalculateGridObjectCenter (const GridObject *o, TAAPosVRT &aaPosVRT)
 calculates the center for arbitrary geometric object More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateGridObjectCenter (const GridObject *o, TAAPosVRT &aaPosVRT, TAAWeightVRT &aaWeight)
 returns the weighted center of the vertices of the given geometric object More...
 
number CalculateHexahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f, const vector3 &g, const vector3 &h)
 
template<class TAAPosVRT >
number CalculateLengthFac (Grid &grid, SubsetHandler &shMarks, Edge *e, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
number CalculateMinCurvature (Grid &grid, SubsetHandler &shMarks, Vertex *vrt, TAAPosVRT &aaPos)
 
number CalculateMinTetrahedronHeight (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d)
 calculates the minimal height of a tetrahedral element More...
 
number CalculateMinVolumeHeight (Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the minimal height of a volume element of type tetrahedron More...
 
void CalculateNormal (vector3 &vNormOut, FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 calculates the normal of the given face More...
 
vector2 CalculateNormal (EdgeVertices *edge, Grid::AttachmentAccessor< Vertex, APosition2 > &aaPos)
 
vector3 CalculateNormal (FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 
vector2 CalculateNormal (EdgeVertices *edge, Grid::AttachmentAccessor< Vertex, Attachment< vector2 > > &aaPos)
 
vector3 CalculateNormal (FaceVertices *face, Grid::AttachmentAccessor< Vertex, Attachment< vector3 > > &aaPos)
 
int CalculateNormal (vector3 &vNormOut, Grid &grid, Edge *e, Grid::AttachmentAccessor< Vertex, APosition > &aaPos, Grid::AttachmentAccessor< Face, ANormal > *paaNormFACE=NULL)
 Calculates the normal of the given edge. More...
 
template<class TVertexPositionAccessor >
number CalculateNormalDot (TriangleDescriptor &td1, TriangleDescriptor &td2, TVertexPositionAccessor &aaPos)
 
template<class TVertexPositionAccessor >
static number CalculateNormalDot (TriangleDescriptor &td1, TriangleDescriptor &td2, TVertexPositionAccessor &aaPos)
 
void CalculateNormalNoNormalize (vector3 &vNormOut, FaceVertices *face, Grid::AttachmentAccessor< Vertex, APosition > &aaPos)
 calculates the normal of the given face More...
 
int CalculateNormalNoNormalize (vector3 &vNormOut, Grid &grid, Edge *e, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid::FaceAttachmentAccessor< ANormal > *paaNormFACE=NULL)
 Calculates the normal of the given edge. More...
 
void CalculateNumElemsVertexAttachmentInTopLevel (MultiGrid &mg, AInt &aNumElems)
 Function for calculating the number of associated volumes of all toplevel vertices. More...
 
void CalculateNumManifoldEdgesVertexAttachmentInParentLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldEdges)
 Function for calculating the number of associated manifold edges of all parent level vertices. More...
 
void CalculateNumManifoldFacesVertexAttachmentInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, AInt &aNumManifoldFaces)
 Function for calculating the number of associated manifold faces of all toplevel manifold vertices. More...
 
number CalculateOctahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Vertex *v, int sideIndex, TAAPos aaPos)
 Calculates the outer normal of the i-th side of the given grid object. More...
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Edge *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Face *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (Volume *v, int sideIndex, TAAPos aaPos)
 
template<class TAAPos >
TAAPos::ValueType CalculateOuterNormal (GridObject *v, int sideIndex, TAAPos aaPos)
 
void CalculatePolychainEdgeNormals (vector2 *edgeNormalsOut, vector2 *polyChain, size_t polyChainSize, bool bOuterNormals)
 
number CalculatePrismVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e, const vector3 &f)
 
number CalculatePyramidVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d, const vector3 &e)
 
number CalculateRightBendVal (vector2 &dirOut, number &normDotOut, SweepLineEdge &e, SweepLineVertex *firstVrt, vector2 lastDir, bool lastDirNormalized=false)
 returns a value between -1 and 1, determining the magnitude of the right bend. More...
 
void CalculateSmoothManifoldPosInParentLevelLoopScheme (MultiGrid &mg, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, APosition &aSmoothBndPosEvenVrt, APosition &aSmoothBndPosOddVrt, AInt &aNumManifoldEdges)
 Parent level vertex smoothing function for subdivision surfaces refinement (by C. Loop, 1987) More...
 
void CalculateSmoothManifoldPosInTopLevelAveragingScheme (MultiGrid &mg, MGSubsetHandler &markSH, MGSubsetHandler &linearManifoldSH, APosition &aSmoothBndPos)
 Toplevel vertex smoothing function for subdivision surfaces refinement (Averaging scheme) More...
 
void CalculateSmoothVolumePosInTopLevel (MultiGrid &mg, MGSubsetHandler &markSH, APosition &aSmoothVolPos)
 Toplevel vertex smoothing function for subdivision volumes refinement. More...
 
number CalculateTetrahedronAspectRatio (Grid &grid, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 calculates the aspect ratio of a tetrahedral element More...
 
number CalculateTetrahedronVolume (const vector3 &a, const vector3 &b, const vector3 &c, const vector3 &d)
 
void CalculateTriangleNormal (SimpleGrid &sg, int triIndex)
 caculates the normal of the given triangle and stores it in sg.triangleNormals[triIndex] More...
 
template<typename vector_t >
void CalculateTriangleNormal (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Calculates a triangle-normal in 3d (output has length 1). More...
 
template<typename vector_t >
void CalculateTriangleNormalNoNormalize (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Calculates a triangle-normal in 3d (no normalization is performed). More...
 
void CalculateTriangleNormals (SimpleGrid &sg)
 resizes sg.triangleNormals and calculates them More...
 
template<class TAAPosVRT >
void CalculateVertexNormal (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a vertex using associated faces More...
 
template<class TAAPosVRT >
UG_API void CalculateVertexNormal (vector3 &nOut, Grid &grid, Vertex *vrt, TAAPosVRT &aaPos)
 calculates the normal of a vertex using associated faces More...
 
void cgetrf_ (lapack_int *m, lapack_int *n, std::complex< lapack_float > *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void cgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const std::complex< lapack_float > *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, std::complex< lapack_float > *b, lapack_int *ldb, lapack_int *info)
 
UG_API void ChangeDirectory (std::string dir)
 Changes the current directory. More...
 
void check_subset_strings (std::vector< std::string > s)
 
template<typename TSparseMatrix >
bool CheckDiagonalInvertible (const TSparseMatrix &A)
 
template<typename TSparseMatrix >
bool CheckDiagonalInvertible (const ParallelMatrix< TSparseMatrix > &m)
 
template<class TElem >
static bool CheckDistributedObjectConstraintTypes (MultiGrid &mg)
 Checks whether distributed objects have the same type on all processes. More...
 
bool CheckDistributedParentTypes (MultiGrid &mg)
 Check whether local parent types match the type of the actual parent element. More...
 
template<typename TDomain , typename TBaseElem >
bool CheckDoFElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
bool CheckEnoughTimePassedToNow (ProfileCall &pc, Shiny::tick_t tnow)
 
bool CheckForUnconnectedSides (Grid &grid)
 Logs all unconnected sides to UG_ERR_LOG and returns true if an unconnected side was found. More...
 
template<class TSide >
static bool CheckForUnconnectedSidesIMPL (Grid &grid)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFforNaN (const TGridFunction *u, size_t fct)
 
template<typename TGridFunction , typename TBaseElem >
bool CheckGFforNaN (const TGridFunction *u, const char *fct_names)
 
bool CheckHangingNodeConsistency (Grid &g)
 checks whether all constraining and constrained objects are correctly connected. More...
 
bool CheckHangingNodeConsistency (MultiGrid &mg)
 checks whether a multigrid is a valid haging vertex grid. More...
 
template<typename T >
void CheckHangingNodeConstrainingFace (bool isConsistent, Grid &g, T iter, T end)
 
static int CheckLine (const vector3 &p1, const vector3 &p2, int outcode_diff)
 
template<class TElem >
bool CheckLocalParentTypes (MultiGrid &mg)
 
bool CheckLuaCallbackName (const char *name)
 returns true if callback exists More...
 
void CheckMultiGridConsistency (MultiGrid &mg)
 Checks whether parent child connections in a multi-grid are correct. More...
 
template<class TElem >
static void CheckMultiGridConsistencyImpl (MultiGrid &mg)
 
template<class TAAPosVRT >
bool CheckOrientation (Volume *vol, TAAPosVRT &aaPosVRT)
 returns true if the volume is oriented so that all sides point to this outside. More...
 
template<class TAAPosVRT >
UG_API bool CheckOrientation (Volume *vol, TAAPosVRT &aaPosVRT)
 returns true if the volume is oriented so that all sides point to this outside. More...
 
bool CheckPermutationBijective (const std::vector< size_t > &perm)
 
static int CheckPoint (const vector3 &p1, const vector3 &p2, number alpha, long mask)
 
void checksub (const CPUAlgebra::matrix_type &A)
 
template<typename TVector >
bool CheckVectorInvertible (const TVector &v)
 
template<typename TVector >
bool CheckVectorInvertible (const ParallelVector< TVector > &v)
 
void ClearAbortRunFlag ()
 clears the abort-run-flag. More...
 
template<class TNumber >
TNumber clip (TNumber val, TNumber lowerBound, TNumber upperBound)
 clips a number to the given interval [lowerBound, upperBound]. More...
 
template<typename TValueType >
void CloneVector (Vector< TValueType > &dest, const Vector< TValueType > &src)
 
template<typename TVector >
bool CloneVector (ParallelVector< TVector > &dest, const ParallelVector< TVector > &src)
 
bool CloseLibrary (DynLibHandle h)
 Frees a library. More...
 
bool CloseToZero (double d)
 
bool cmp_slv (const SweepLineVertex &v1, const SweepLineVertex &v2)
 
bool CollapseEdge (SimpleGrid &sg)
 
bool CollapseEdge (Grid &grid, Edge *e, Vertex *newVrt)
 Collapses the specified edge performs local grid restructuring. More...
 
static bool CollectAllVerticesForNG (Grid &grid, VertexSelector &NgVrtSel, VertexSelector &SurfVrtSel, VertexSelector &InnVrtSel)
 collects all vertices in *.ng file order in a selector More...
 
UG_API void CollectAssociated (std::vector< Vertex *> &vVertexOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Edge *> &vEdgesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Face *> &vFacesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Face *> &vFacesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 
void CollectAssociated (std::vector< Face *> &vFacesOut, Grid &grid, Face *vol, bool clearContainer=true)
 Collects all faces. (Returns the face itself) More...
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, Volume *vol, bool clearContainer=true)
 Collects all volumes. (Returns the volume itself) More...
 
void CollectConstraining (std::vector< Vertex *> &vConstrainingVrt, const Grid &grid, ConstrainedVertex *hgVrt, bool bClearContainer)
 returns the vertices of the object constraining a hanging vertex More...
 
template<typename TElem , typename TAAPos >
void CollectCornerCoordinates (std::vector< typename TAAPos::ValueType > &vCornerCoordsOut, TElem *elem, const TAAPos &aaPos, bool clearContainer)
 
template<typename TElem , typename TAAPos >
void CollectCornerCoordinates (std::vector< typename TAAPos::ValueType > &vCornerCoordsOut, const TElem &elem, const TAAPos &aaPos, bool clearContainer=true)
 returns the corner coordinates of a geometric object More...
 
template<typename TElem , typename TDomain >
void CollectCornerCoordinates (std::vector< typename TDomain::position_type > &vCornerCoordsOut, const TElem &elem, const TDomain &domain, bool clearContainer=true)
 returns the corner coordinates of a geometric object More...
 
void CollectEdges (vector< Edge *> &vEdgesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all edges. (Returns the edge itself) More...
 
void CollectEdges (vector< Edge *> &vEdgesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given face. More...
 
void CollectEdges (vector< Edge *> &vEdgesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
void CollectEdgesSorted (vector< Edge *> &vEdgesOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all edges of a vertex, thus, none. More...
 
void CollectEdgesSorted (vector< Edge *> &vEdgesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all edges. (Returns the edge itself) More...
 
void CollectEdgesSorted (vector< Edge *> &vEdgesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given face in the order defined by the reference elements. More...
 
void CollectEdgesSorted (vector< Edge *> &vEdgesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all edges that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
void CollectEdgesSorted (std::vector< Edge *> &vEdgesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
UG_API void CollectEdgesSorted (std::vector< Edge *> &vEdgesOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all edges of a vertex, thus, none. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge *> &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge in the order defined by the reference elements. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge *> &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face in the order defined by the reference elements. More...
 
UG_API void CollectEdgesSorted (std::vector< Edge *> &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
UG_API void CollectFaces (std::vector< Face *> &vFacesOut, Grid &grid, Face *v, bool clearContainer=true)
 Collects all faces. (Returns the face itself) More...
 
void CollectFaces (std::vector< Face *> &vFacesOut, Grid &grid, Vertex *vrt, bool clearContainer)
 Collects all faces that exist in the given grid which contain the given vertex. More...
 
void CollectFaces (vector< Face *> &vFacesOut, Grid &grid, Face *e, bool clearContainer)
 Collects all faces. (Returns the face itself) More...
 
void CollectFaces (vector< Face *> &vFacesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all faces that exist in the given grid are part of the given volume. More...
 
void CollectFacesSorted (std::vector< Face *> &vFacesOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
UG_API void CollectFacesSorted (std::vector< Face *> &vFacesOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all Faces of a Vertex, thus, none. More...
 
UG_API void CollectFacesSorted (std::vector< Face *> &vFacesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given edge in the order defined by the reference elements. More...
 
void CollectFacesSorted (vector< Face *> &vFacesOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all Faces of a Vertex, thus, none. More...
 
UG_API void CollectFacesSorted (std::vector< Face *> &vFacesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given face in the order defined by the reference elements. More...
 
void CollectFacesSorted (vector< Face *> &vFacesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
UG_API void CollectFacesSorted (std::vector< Face *> &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all face that exist in the given grid are part of the given volume in the order defined by the reference elements. More...
 
void CollectFacesSorted (vector< Face *> &vFacesOut, Grid &grid, Face *f, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
void CollectFacesSorted (vector< Face *> &vFacesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all faces and returns them in the order prescribed by the reference element. More...
 
static bool CollectInnerVertices (Grid &grid, VertexSelector &InnVrtSel, VertexSelector &SurfVrtSel)
 collects inner-vertices in a selector More...
 
static bool CollectLines (Grid &grid, const SubsetHandler &shFace, EdgeSelector &LineSel)
 collects lines in a selector More...
 
template<typename matrix_type >
void CollectMatrixOnOneProc (const matrix_type &A, matrix_type &collectedA, IndexLayout &masterLayout, IndexLayout &slaveLayout)
 
void CollectNeighborhood (std::vector< Face * > &facesOut, Grid &grid, Vertex *vrt, size_t range, bool clearContainer=true)
 Collects all neighbors in a given neighborhood of a vertex. More...
 
void CollectNeighbors (std::vector< Vertex * > &vNeighborsOut, Grid &grid, Vertex *vrt, uint nbhType=NHT_EDGE_NEIGHBORS, Grid::edge_traits::callback considerEdge=ConsiderAll(), Grid::face_traits::callback considerFace=ConsiderAll(), Grid::volume_traits::callback considerVol=ConsiderAll())
 Collects all vertices that are connected by elements of the specified type. More...
 
void CollectNeighbors (std::vector< Edge * > &vNeighborsOut, Edge *e, Grid &grid, NeighborhoodType nbhType=NHT_VERTEX_NEIGHBORS)
 collects all edges that are connected to the given one. More...
 
void CollectNeighbors (std::vector< Face * > &vNeighborsOut, Face *f, Grid &grid, NeighborhoodType nbhType=NHT_EDGE_NEIGHBORS)
 collects all faces that are connected to the given one. More...
 
void CollectNeighbors (std::vector< Volume * > &vNeighboursOut, Volume *v, Grid &grid, NeighborhoodType nbhType=NHT_FACE_NEIGHBORS)
 collects all volumes that are connected to the given one. More...
 
template<typename TDomain , typename TBaseElem >
void collectStretchedElementIndices (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &indarray, number alpha)
 
bool CollectSurfaceNeighborsSorted (std::vector< Vertex * > &vNeighborsOut, Grid &grid, Vertex *v)
 Collects neighbor-vertices in either clockwise or counter clockwise order. More...
 
static bool CollectSurfaceVertices (Grid &grid, const SubsetHandler &shFace, VertexSelector &SurfVrtSel)
 collects surface-vertices in a selector More...
 
template<class TElem >
void CollectSurfaceViewElements (ISubsetHandler &surfaceViewOut, MultiGrid &mg, MGSubsetHandler &mgsh, bool clearContainer=true)
 
template<class TElem >
void CollectSurfaceViewElements (ISubsetHandler &surfaceViewOut, DistributedGridManager &distGridMgr, MultiGridSubsetHandler &mgsh, bool clearContainer)
 
template<class TSideIterator >
size_t CollectUnconnectedSides (std::vector< typename TSideIterator::value_type > &elemsOut, Grid &grid, TSideIterator begin, TSideIterator end)
 
template<class TType >
static void CollectUniqueObjects (vector< TType > &vecOut, const vector< TType > &vecIn)
 
UG_API void CollectVertices (std::vector< Vertex *> &vVertexOut, Grid &grid, GridObject *obj, bool clearContainer=true)
 
size_t CollectVerticesTouchingSelection (std::vector< Vertex * > &vrtsOut, ISelector &sel)
 Collects all vertices which are selected or which touch a selected element. More...
 
UG_API void CollectVolumes (std::vector< Volume *> &vVolumesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all volumes. (Returns the volume itself) More...
 
void CollectVolumes (std::vector< Volume * > &vVolumesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given vertex. More...
 
void CollectVolumes (vector< Volume *> &vVolumesOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all volumes. (Returns the volume itself) More...
 
template<int TRefDim>
void ColorControlVolume (ISubsetHandler &shOut)
 
int ColorProcessorGraph (pcl::InterfaceCommunicator< IndexLayout > &com, std::set< int > &pids, std::vector< int > &processesWithLowerColor, std::vector< int > &processesWithHigherColor)
 
template<typename TElem >
void ColorSubControlVolume (ISubsetHandler &shOut)
 
template<typename TElem >
void ColorSubControlVolumeFaces (ISubsetHandler &shOut)
 
vector< nodeType * > CommaListToVector (nodeType *a)
 
void CommunicateConnections (vector< vector< int > > &connectionsToProcsOut, vector< vector< int > > &connectionsToSubDomsOut, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, int highestReferencedIndex, pcl::IDomainDecompositionInfo &ddinfo)
 
template<typename TCommunicationScheme >
void CommunicateFromMasterToSlave (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void CommunicateFromSlaveToMaster (HorizontalAlgebraLayouts &layouts, TCommunicationScheme &scheme)
 
template<typename TCommunicationScheme >
void CommunicateOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, const IndexLayout &sendingLayout, const IndexLayout &receivingLayout, TCommunicationScheme &scheme)
 sends data over a CommunicationScheme from a sendingLayout to a receivingLayout More...
 
template<int dim>
bool ComparePosDim (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDim< 1 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDim< 2 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDim< 3 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<int dim>
bool ComparePosDimYDir (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 1 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 2 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimYDir< 3 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<int dim>
bool ComparePosDimZDir (const std::pair< MathVector< dim >, size_t > &p1, const std::pair< MathVector< dim >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 1 > (const std::pair< MathVector< 1 >, size_t > &p1, const std::pair< MathVector< 1 >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 2 > (const std::pair< MathVector< 2 >, size_t > &p1, const std::pair< MathVector< 2 >, size_t > &p2)
 
template<>
bool ComparePosDimZDir< 3 > (const std::pair< MathVector< 3 >, size_t > &p1, const std::pair< MathVector< 3 >, size_t > &p2)
 
template<class TVrtContainer1 , class TVrtContainer2 >
bool CompareVertexContainer (const TVrtContainer1 &con1, const TVrtContainer2 &con2)
 compares vertices in a container More...
 
template<class TVrtContainer1 , class TVrtContainer2 >
UG_API bool CompareVertexContainer (const TVrtContainer1 &con1, const TVrtContainer2 &con2)
 compares vertices in a container More...
 
bool CompareVertices (const EdgeVertices *ev1, const EdgeVertices *ev2)
 Checks whether ev1 and ev2 contain the same vertices. More...
 
bool CompareVertices (const FaceVertices *fv1, const FaceVertices *fv2)
 Checks whether fv1 and fv2 contain the same vertices. More...
 
bool CompareVertices (const VolumeVertices *vv1, const VolumeVertices *vv2)
 Checks whether vv1 and vv2 contain the same vertices. More...
 
template<typename TElem >
number ComputeAvg (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &sum, number &errSq, size_t &numElem, number &minLocal, number &maxLocal, number &sumLocal, size_t &numElemLocal)
 helper function that computes min/max and total of error indicators More...
 
template<typename TRefElem >
static void ComputeBFMidID (const TRefElem &rRefElem, int side, MidID vMidID[], int co)
 
template<typename TRefElem >
static void ComputeBFMidID (const TRefElem &rRefElem, int side, MidID vMidID[], int co)
 
template<typename TRefElem >
static void ComputeBFMidID (const TRefElem &rRefElem, int side, MidID vMidID[], int co)
 
void ComputeCuthillMcKeeOrder (std::vector< size_t > &vNewIndex, std::vector< std::vector< size_t > > &vvNeighbour, bool bReverse=true, bool bPreserveConsec=true)
 returns an array describing the needed index mapping for Cuthill-McKee ordering More...
 
template<typename TVector >
void ComputeDifferenceOnDelta (TVector &diff, const TVector &u, IndexLayout &dualMasterLayoutIn, IndexLayout &dualSlaveLayoutIn, IndexLayout &dualNbrMasterLayoutIn, IndexLayout &dualNbrSlaveLayoutIn)
 Application of the "jump operator" \(B_{\Delta}\). More...
 
template<typename TVector >
void ComputeDifferenceOnDeltaTransposed (TVector &f, const TVector &diff, const std::vector< IndexLayout::Element > &vDualMasterIndex, const std::vector< IndexLayout::Element > &vDualSlaveIndex, const std::vector< IndexLayout::Element > &vDualNbrSlaveIndex)
 'ComputeDifferenceOnDeltaTransposed()': Apply \(B_{\Delta}^T\) More...
 
template<int dim>
void ComputeDirectionYOrder (std::vector< std::pair< MathVector< dim >, size_t > > &vPos, std::vector< size_t > &indY)
 
template<int dim>
void ComputeDirectionZOrder (std::vector< std::pair< MathVector< dim >, size_t > > &vPos, std::vector< size_t > &indZ)
 
template<typename TFunction >
void ComputeGradientCrouzeixRaviart (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void computeGradientJump (TFunction &u, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaGrad, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void ComputeGradientLagrange1 (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TFunction >
void ComputeGradientPiecewiseConstant (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<int dim>
void ComputeLexicographicOrder (std::vector< size_t > &vNewIndex, std::vector< std::pair< MathVector< dim >, size_t > > &vPos)
 
void ComputeLocalSubsetDimensions (ISubsetHandler &sh, AChar aDimension, bool includeUnassigned)
 Computes the local subset dimension for each element and stores it in the given attachment. More...
 
template<int dim, typename TRefElem , int maxMid>
static void ComputeMidPoints (const TRefElem &rRefElem, const MathVector< dim > vCorner[], MathVector< dim > vvMid[][maxMid])
 
template<int dim, typename TRefElem , int maxMid>
static void ComputeMidPoints (const TRefElem &rRefElem, const MathVector< dim > vCorner[], MathVector< dim > vvMid[][maxMid])
 
template<int dim, typename TRefElem , int maxMid>
static void ComputeMidPoints (const TRefElem &rRefElem, const MathVector< dim > vCorner[], MathVector< dim > vvMid[][maxMid])
 
template<typename TElem >
void ComputeMinMax (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &totalErr, size_t &numElem, number &minLocal, number &maxLocal, number &totalErrLocal, size_t &numElemLocal)
 helper function that computes min/max and total of error indicators More...
 
template<typename TElem >
void ComputeMinMaxTotal (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, ConstSmartPtr< DoFDistribution > dd, number &min, number &max, number &totalErr, size_t &numElem)
 helper function that computes min/max and total of error indicators More...
 
template<int dim>
void ComputeMultiIndicesOfSubElement (std::vector< MathVector< dim, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 1 > (std::vector< MathVector< 1, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 2 > (std::vector< MathVector< 2, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<>
void ComputeMultiIndicesOfSubElement< 3 > (std::vector< MathVector< 3, int > > *vvMultiIndex, bool *vIsBndElem, std::vector< int > *vElemBndSide, std::vector< size_t > *vIndex, ReferenceObjectID roid, int p)
 
template<typename TBaseElem , typename TSubBaseElem >
void ComputeOrientationOffsetGeneric (std::vector< size_t > &vOrientOffset, TBaseElem *elem, TSubBaseElem *sub, size_t nrSub, const LFEID &lfeid)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, EdgeDescriptor &ed, EdgeVertices *edge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Face *face, Edge *edge, size_t nrEdge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Volume *vol, Edge *edge, size_t nrEdge, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, Volume *volume, Face *face, size_t nrFace, const size_t p)
 
void ComputeOrientationOffsetLagrange (std::vector< size_t > &vOrientOffset, GridObject *volume, GridObject *face, size_t nrFace, const size_t p)
 
template<typename TRefElem >
static void ComputeSCVFMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVFMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVFMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
template<typename TRefElem >
static void ComputeSCVMidID (const TRefElem &rRefElem, MidID vMidID[], int i)
 
UG_API std::string ConfigShift (std::string s)
 returns a "shifted" string one-line strings are not shifted two line strings are shifted like this: input: "MyLine1\nMyLine2\n" Output: "\n | MyLine1\n | MyLine2" note that they get an additional
at the beginning, and doubled
and
at the end are removed, so you can use ConfigShift like this More...
 
string ConfigShift (string s)
 
char ConfigShiftRotation (char c)
 
template<typename TVec >
void ConsistencyCheck (const TVec &vec, pcl::InterfaceCommunicator< IndexLayout > &com, const pcl::ProcessCommunicator &pc, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, std::string name="")
 receives data over a interface based on a CommunicationScheme on a subgroup of processes More...
 
template<typename TVec >
void ConsistencyCheck (const TVec &vec, const HorizontalAlgebraLayouts &layout, std::string name="")
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraph (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, Grid &grid, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT, const GridObjectCollection *pgoc=NULL)
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraphMG (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, std::vector< TIndexType > *pEdgeWeightsOut, MultiGrid &mg, size_t baseLevel=0, int hWeight=1, int vWeight=1, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT)
 
template<class TGeomBaseObj , class TIndexType >
void ConstructDualGraphMGLevel (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, MultiGrid &mg, size_t level, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT, DualGraphNeighborCollector< TGeomBaseObj > *neighborCollector=NULL)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCV (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si)
 
template<template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCV (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si, int siDim)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCVF (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si)
 
template<template< class, int > class TFVGeom, int TWorldDim>
void ConstructGridOfSCVF (ISubsetHandler &shOut, const SurfaceView &surfView, const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPos, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut, int si, int siDim)
 
bool ConstructOrthonormalSystem (matrix33 &matOut, const vector3 &v, size_t vColInd)
 constructs a orthonormal matrix given a vector in 3d. More...
 
template<class TGeomBaseObj , class TIndexType >
void ConstructParallelDualGraphMGLevel (std::vector< TIndexType > &adjacencyMapStructureOut, std::vector< TIndexType > &adjacencyMapOut, std::vector< TIndexType > &nodeOffsetMapOut, MultiGrid &mg, size_t level, pcl::ProcessCommunicator procCom, Attachment< TIndexType > *paIndex=NULL, TGeomBaseObj **pGeomObjsOut=NULL, NeighborhoodType nbhType=NHT_DEFAULT)
 
bool Contains (const string &str, const string &search)
 
UG_API bool Contains (const std::string &str, const std::string &search)
 Checks whether given string contains a specified substring. More...
 
template<class TStdVector >
static bool ContainsInterfaceElem (const TStdVector &elems, DistributedGridManager &distGridMgr)
 
template<class TAAPos >
bool ContainsPoint (Volume *vol, const vector3 &p, TAAPos aaPos)
 Checks whether a given point lies in the given volume element. More...
 
template<class TAAPos >
UG_API bool ContainsPoint (Volume *vol, const vector3 &p, TAAPos aaPos)
 Checks whether a given point lies in the given volume element. More...
 
template<class vector_t , class TAAPos >
bool ContainsPoint (const FaceVertices *f, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies inside the given face. More...
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const FaceVertices *f, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies inside the given face. More...
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const EdgeVertices *e, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies on the given edge. More...
 
template<class vector_t , class TAAPos >
UG_API bool ContainsPoint (const Vertex *v, const vector_t &p, TAAPos aaPos)
 Returns true if the given point lies on the given vertex. More...
 
static void ContinuousDebugSave (ISelector &sel)
 temporary method, which will be removed when debugging is done. More...
 
template<class TElem , class TSrcAttachment , class TDestAttachment >
bool ConvertMathVectorAttachmentValues (Grid &grid, TSrcAttachment &srcAttachment, TDestAttachment &destAttachment)
 Fills the dest-attachment with values from the source-attachment. More...
 
std::string ConvertNumber (uint64_t size, unsigned int width, unsigned int numDisplayedDigits)
 returns number 'size' in a more human readable format (using IEC binary prefixes) More...
 
std::string ConvertNumberSI (uint64_t size, unsigned int width, unsigned int numDisplayedDigits)
 returns number 'size' in a more human readable format (using SI prefixes) More...
 
template<class TVolIter >
void ConvertToTetrahedra (Grid &grid, TVolIter volsBegin, TVolIter volsEnd)
 Converts all volumes in the given range to tetrahedra. More...
 
template<class TElem , class TAttachment >
bool CopyAttachments (Grid &srcGrid, TAttachment &aSrc, Grid &destGrid, TAttachment &aDest)
 copies attachments from one grid to the other More...
 
template<class TElemIter , class TAttachment >
bool CopyAttachments (Grid &grid, TElemIter elemsBegin, TElemIter elemsEnd, TAttachment &aSrc, TAttachment &aDest)
 copies attachments for the specified elements More...
 
template<int dim, int maxMid>
static void CopyCornerByMidID (MathVector< dim > vCorner[], const MidID vMidID[], MathVector< dim > vvMidPos[][maxMid], const size_t numCo)
 
template<int dim, int maxMid>
static void CopyCornerByMidID (MathVector< dim > vCorner[], const MidID vMidID[], MathVector< dim > vvMidPos[][maxMid], const size_t numCo)
 
template<int dim, int maxMid>
static void CopyCornerByMidID (MathVector< dim > vCorner[], const MidID vMidID[], MathVector< dim > vvMidPos[][maxMid], const size_t numCo)
 
template<class TAPos >
void CopyGridLevel (MultiGrid &srcMG, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, int lvl, TAPos aPos)
 Copies a grid level to a separate grid. More...
 
template<class TElem >
void CopyGridLevelElements (MultiGrid &srcMG, Grid &destGrid, ISubsetHandler &srcSH, ISubsetHandler &destSH, int lvl, AVertex &aNewVrt)
 
static void CopyInterfaceEntrysToDomainDecompositionLayouts (IndexLayout &subdomLayoutOut, IndexLayout &processLayoutOut, IndexLayout &deltaNbrLayoutOut, IndexLayout &crossPointLayoutOut, const IndexLayout &standardLayout, vector< int > &flags, IDomainDecompositionInfo &ddinfo)
 
template<typename TMatrixType , typename TRowType >
void CopyOffDiagEntries (const TMatrixType &A, size_t i, TRowType &row, bool enforceNew=false)
 
template<class TGeomObj >
void CopySelectionStatus (Selector &selOut, Grid &gridOut, Selector &selIn, Grid &gridIn)
 
template<class TGeomObj >
static void CopySelectionStatus (Selector &selOut, Grid &gridOut, Selector &selIn, Grid &gridIn)
 
template<class TIterator >
static void CopySubsetFromHigherDimNbr (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, AChar aDimension)
 
template<class TIterator >
static void CopySubsetIndices (ISubsetHandler &dest, const ISubsetHandler &src, TIterator destIterBegin, TIterator destIterEnd, TIterator srcIterBegin, TIterator srcIterEnd)
 
template<class TIterator >
void CopySubsetIndicesToSides (ISubsetHandler &sh, TIterator elemsBegin, TIterator elemsEnd, bool toUnassignedOnly)
 copies subset-indices to side-elements More...
 
void CopySubsetIndicesToSides (ISubsetHandler &sh, GridObjectCollection goc, bool toUnassignedOnly)
 copies subset-indices to sides of the specified elements More...
 
void CopySubsetIndicesToSides (ISubsetHandler &sh, bool toUnassignedOnly)
 copies subset-indices to sides of all elements in the subset handler More...
 
template<typename TStorage >
std::string CPPString (const DenseMatrix< TStorage > &A, const char *name)
 
uint32 crc32 (const char *str)
 Calculates the crc32 for a null-terminated string. More...
 
template<typename TDomain >
static SmartPtr< IRefinerCreateAdaptiveRegularDomainRefiner (TDomain *dom)
 Creates an adaptive regular domain refiner. More...
 
void CreateAllToAllFromMasterSlave (pcl::InterfaceCommunicator< IndexLayout > &communicator, IndexLayout &OLCoarseningSendLayout, IndexLayout &OLCoarseningReceiveLayout, IndexLayout &OL1MasterLayout, IndexLayout &OL1SlaveLayout)
 
template<class TGeomObj >
void CreateAndDistributeGlobalIDs (Grid &g, GridLayoutMap &glm, AGeomObjID &aID=aGeomObjID)
 Creates and distributes global ids for the given element type. More...
 
template<typename ABC_type , typename A_type , typename B_type , typename C_type >
void CreateAsMultiplyOf (ABC_type &M, const A_type &A, const B_type &B, const C_type &C, double epsilonTruncation=0.0)
 Calculates M = A*B*C. More...
 
template<typename AB_type , typename A_type , typename B_type >
void CreateAsMultiplyOf (AB_type &M, const A_type &A, const B_type &B)
 Calculates M = A*B. More...
 
template<typename TData , int dim>
SmartPtr< CplUserData< TData, dim > > CreateConstUserData (number val, TData dummy)
 creates user data of desired type More...
 
template<int dim>
SmartPtr< CplUserData< number, dim > > CreateConstUserData (number val, number)
 
template<int dim>
SmartPtr< CplUserData< MathVector< dim >, dim > > CreateConstUserData (number val, MathVector< dim >)
 
template<int dim>
SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > CreateConstUserData (number val, MathMatrix< dim, dim >)
 
template<int dim>
SmartPtr< CplUserData< MathTensor< 4, dim >, dim > > CreateConstUserData (number val, MathTensor< 4, dim >)
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateControlVolumeDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
bool CreateEdgeSplitGeometry (Grid &destGrid, Grid &srcGrid, Edge *e, Vertex *newVertex, AVertex *paAssociatedVertices=NULL)
 given an edge and a vertex (the split-vertex) this method constructs the split-geometry. More...
 
void CreateFunctionIndexMapping (FunctionIndexMapping &map, const FunctionGroup &grpFromSmall, const FunctionGroup &grpToLarge)
 
void CreateFunctionIndexMapping (FunctionIndexMapping &map, const FunctionGroup &grpFrom, ConstSmartPtr< FunctionPattern > fctPattern)
 
template<class TDomain >
static SmartPtr< GlobalFracturedMediaRefinerCreateGlobalFracturedDomainRefiner (TDomain *dom)
 Creates a global fractured domain refiner. More...
 
template<typename TLocalToGlobal >
void CreateGlobalLayout (GlobalLayout &globalLayout, const IndexLayout &layout, const TLocalToGlobal &localToGlobal)
 
void CreateGridFromField (Grid &grid, const Field< number > &field, const vector2 &cellSize, const vector2 &offset, number noDataValue, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromField (Grid &grid, const Heightfield &hfield, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromFieldBoundary (Grid &grid, const Field< number > &field, const vector2 &cellSize, const vector2 &offset, number noDataValue, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
void CreateGridFromFieldBoundary (Grid &grid, const Heightfield &hfield, Grid::VertexAttachmentAccessor< APosition > aaPos)
 
template<template< class, int > class TFVGeom, typename TAAPosition , typename TAPosition >
void CreateGridOfControlVolumes (ISubsetHandler &shOut, TAAPosition &aaPosOut, TAPosition &aPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TAAPosition >
void CreateGridOfSubControlVolumeFaces (ISubsetHandler &shOut, TAAPosition &aaPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TAAPosition >
void CreateGridOfSubControlVolumes (ISubsetHandler &shOut, TAAPosition &aaPosOut, const ISubsetHandler &sh, const TAAPosition &aaPos, const SurfaceView &surfView, int si=-1)
 
bool CreateIndexLayouts_DomainDecomposition (IndexLayout &processLayoutOut, IndexLayout &subdomainLayoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, int level, pcl::IDomainDecompositionInfo *ddInfoIn)
 
template<typename TGlobalToLocal >
void CreateLayoutFromGlobalLayout (IndexLayout &layout, GlobalLayout &globalLayout, TGlobalToLocal &globalToLocal, bool bRemoveDoubles=true)
 
template<class TElem >
static void CreateLayoutsFromDistInfos (MultiGrid &mg, GridLayoutMap &glm, DistInfoSupplier &distInfos, AGeomObjID &aGID)
 
bool CreateLevelIndexLayout (IndexLayout &layoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, int level)
 creates the index layout for a level given a GridLayoutMap More...
 
template<class TElem >
number CreateListOfElemWeights (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, typename DoFDistribution::traits< TElem >::const_iterator iterBegin, const typename DoFDistribution::traits< TElem >::const_iterator iterEnd, std::vector< double > &eta)
 
SmartPtr< AlgebraLayoutsCreateLocalAlgebraLayouts ()
 
template<class TIterator >
SPOctree CreateOctree (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, int maxDepth, int elemThreshold, bool bLoose, APosition &aPos=aPosition)
 Creates an Octree from a list of edges or triangles. More...
 
template<class TEdgeIter >
bool CreatePolyChain (std::vector< Vertex *> &polyChainOut, Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd)
 given a list of edges, this method collects associated vertices in a polychain More...
 
static PrismCreatePrism (Grid &grid, vector< Triangle *> &vTris, vector< Quadrilateral *> &vQuads, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
SPProcessHierarchy CreateProcessHierarchy (size_t *numElemsOnLvl, size_t numLvls, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLvlsWithoutRedist)
 Creates a process-hierarchy that fullfills the given conditions. More...
 
template<class TDomain >
SPProcessHierarchy CreateProcessHierarchy (TDomain &dom, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLevelsWithoutRedist)
 Creates a process-hierarchy that fullfills the given conditions. More...
 
template<class TDomain >
SPProcessHierarchy CreateProcessHierarchy (TDomain &dom, size_t minNumElemsPerProcPerLvl, size_t maxNumRedistProcs, size_t maxNumProcs, int minDistLvl, int maxLevelsWithoutRedist, IRefiner *refiner)
 
static PyramidCreatePyramid (Grid &grid, vector< Triangle *> &vTris, vector< Quadrilateral *> &vQuads, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void CreateSCV (const TElem &elem, TFVGeom< TElem, TWorldDim > &geo, ISubsetHandler &shOut, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut)
 
template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void CreateSCVF (const TElem &elem, TFVGeom< TElem, TWorldDim > &geo, ISubsetHandler &shOut, Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &aaPosOut)
 
template<typename matrix_type >
void CreateStrongConnectionGraphForSystems (const matrix_type &A, cgraph &graph, double theta)
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateSubControlVolumeDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
template<template< class, int > class TFVGeom, typename TDomain >
void CreateSubControlVolumeFaceDomain (TDomain &domOut, const TDomain &domIn, const SurfaceView &surfView, int si=-1)
 
template<typename TDomain >
void CreateSubsetGroups (std::vector< SubsetGroup > &vSSGrp, SubsetGroup &unionSSGrp, std::vector< IElemDisc< TDomain > * > vElemDisc, ConstSmartPtr< ISubsetHandler > pSH)
 
bool CreateSurfaceIndexLayout (IndexLayout &layoutOut, DoFDistribution &dofDistr, GridLayoutMap &layoutMap, int keyType, MultiGrid &mg, DistributedGridManager &dGrMgr)
 creates the index layout for a level given a GridLayoutMap More...
 
template<class TElem , class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, MultiGrid &mg, MGSubsetHandler &mgsh)
 
template<class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, MultiGrid &mg, MultiGridSubsetHandler &mgsh)
 
template<class TSurfaceView >
void CreateSurfaceView (TSurfaceView &surfaceViewOut, DistributedGridManager &distGridMgr, MultiGridSubsetHandler &mgsh)
 
bool CreateSweepLineStructs (vector< SweepLineVertex > &vrtsOut, SweepLineEdgeList &edgesOut, const vector< vector2 > &vrtsIn, const vector< int > &edgesIn)
 
static TetrahedronCreateTetrahedron (Grid &grid, vector< Triangle *> &vTris, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 
void CreateUnionOfFunctionGroups (FunctionGroup &fctGrp, const std::vector< const FunctionGroup *> &vFctGrp, bool sortFct=false)
 
void CreateUnionOfFunctionGroups (FunctionGroup &fctGrp, const vector< const FunctionGroup *> &vFctGrp, bool sortFct)
 
static void CreateVolumesFromElementIndexList (vector< Volume *> &volsOut, int *elemIndexList, int elemIndexListSize, Vertex **vrts)
 
template<typename T >
CUDA_GetElementFromDevice (T *p, size_t i=0)
 
template<typename T >
void CudaCheckStatus (T status, const char *file, int line)
 
template<typename T >
void CudaCpyToDevice (typename T::value_type *dest, T &vec)
 
template<typename T >
void CudaCpyToHost (T &dest, typename T::value_type *src)
 
template<typename T >
T::value_typeCudaCreateAndCopyToDevice (T &vec)
 
const char * CUDAError (int err)
 
std::string CurrentWorkingDirectory ()
 
bool CutEdgesWithPlane (Selector &sel, const vector3 &p, const vector3 &n, APosition &aPos=aPosition)
 refines all edges in sel which cut the given plane. More...
 
std::string cutString (double d, size_t width)
 
double dabs (double a)
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< bool >, "bool")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< char >, "char")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< byte >, "byte")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< int >, "int")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< uint >, "uint")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< float >, "number")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< double >, "number")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector1 >, "vector1")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector2 >, "vector2")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector3 >, "vector3")
 
 DECLARE_ATTACHMENT_INFO_TRAITS (Attachment< vector4 >, "vector4")
 
bool Decomp (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &rhs, size_t &iNonNullRows, double deficitTolerance)
 
bool Decomp (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &rhs, size_t &iNonNullRows, std::vector< size_t > &xinterchange, double deficitTolerance)
 
template<class TNumber >
TNumber deg_to_rad (TNumber deg)
 
template<class TAAPos >
static void DelaunayDebugSave (Grid &g, const char *msg, DelaunayInfo< TAAPos > &dinfo)
 
static bool DelaunayLineLineIntersection (vector3 &vOut, const vector3 &lineFrom, const vector3 &lineTo, const vector3 &edgeVrt1, const vector3 &edgeVrt2, vector3 areaNormal, number smallsq=SMALL_SQ)
 
string demangle (const char *str)
 
string demangle_block (const char *str)
 
template<class TSelector >
void DeselectBoundarySelectionEdges (TSelector &sel)
 deselects all edges that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionEdges< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionEdges< Selector > (Selector &)
 
template<class TSelector >
void DeselectBoundarySelectionFaces (TSelector &sel)
 deselects all faces that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionFaces< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionFaces< Selector > (Selector &)
 
template<class TSelector >
void DeselectBoundarySelectionVertices (TSelector &sel)
 deselects all vertices that are connected to unselected elements. More...
 
template void DeselectBoundarySelectionVertices< MGSelector > (MGSelector &)
 
template void DeselectBoundarySelectionVertices< Selector > (Selector &)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Vertex *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Edge *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Face *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, Volume *elem)
 
static void DeselectFamily (ISelector &sel, MultiGrid &mg, GridObject *elem)
 
template<class TIStream >
void Deserialize (TIStream &buf, IndexLayout::Interface &interface)
 
template<class TIStream >
void Deserialize (TIStream &buf, IndexLayout &layout)
 
template<typename T , class TIStream >
void Deserialize (TIStream &buf, ParallelVector< T > &v)
 Deerialize for ParallelVector<T> More...
 
template<class TStream , class T >
void Deserialize (TStream &buf, T &valOut)
 
template<typename T , class TIStream >
Deserialize (TIStream &stream)
 method returning value directly More...
 
template<class TIStream >
void Deserialize (TIStream &buf, pcl::InterfaceCommunicator< IndexLayout > &ic)
 
template<class TStream , class T >
void Deserialize (TStream &buf, const T &valOut)
 Catch errors with wrong const identifiers in valOut. More...
 
template<size_t n>
void Deserialize (std::istream &buff, DenseVector< FixedArray1< number, n > > &vec)
 
template<class T1 , class T2 , class TIStream >
void Deserialize (TIStream &buf, std::pair< T1, T2 > &v)
 
template<class T , class TIStream >
void Deserialize (TIStream &buf, std::set< T > &myset)
 deserializes data from a binary stream into a set More...
 
template<typename T >
void Deserialize (std::istream &buff, DenseVector< VariableArray1< double > > &vec)
 
template<class TIStream >
void Deserialize (TIStream &buf, std::string &str)
 deserializes data from a binary stream into a string More...
 
template<class TIStream >
void Deserialize (TIStream &buf, pcl::ProcessCommunicator &ic)
 
template<class TIStream >
void Deserialize (TIStream &buf, Variant &v)
 deserializes data from a binary stream into a variant More...
 
template<class T , class TIStream >
void Deserialize (TIStream &buf, std::vector< T > &vec)
 deserializes data from a binary stream into a vector More...
 
template<class TIStream >
void Deserialize (TIStream &buf, std::vector< bool >::reference boolRef)
 deserializes data from a binary stream into a vector<bool> More...
 
template<class Key , class T , class TIStream >
void Deserialize (TIStream &buf, std::map< Key, T > &m)
 deserializes data from a binary stream into a map More...
 
template<typename TValueType , class TIStream >
void Deserialize (TIStream &buf, Vector< TValueType > &v)
 
template<class TIStream >
void Deserialize (TIStream &buf, std::vector< bool > &vec)
 
template<typename T >
void Deserialize (std::istream &buff, const DenseMatrix< VariableArray2< T > > &mat)
 
template<class TStream , std::size_t N, class T >
void Deserialize (TStream &out, MathVector< N, T > &valOut)
 
void DeserializeAndAddGlobalInterface (BinaryBuffer &stream, std::vector< AlgebraID > &interface)
 
void DeserializeAndAddGlobalLayout (BinaryBuffer &stream, GlobalLayout &globalLayout)
 
template<class TElem , class TAttachment >
bool DeserializeAttachment (Grid &grid, TAttachment &attachment, BinaryBuffer &in)
 copies attached values from a binary stream More...
 
template<class TElem , class TAttachment >
bool DeserializeAttachment (Grid &grid, TAttachment &attachment, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, BinaryBuffer &in)
 copies attached values from a binary stream More...
 
bool DeserializeGridElements (Grid &grid, BinaryBuffer &in, bool readGridHeader=true)
 Creates grid elements from a binary stream. More...
 
template<typename TGlobalToLocal >
void DeserializeInterface (BinaryBuffer &stream, IndexLayout::Interface &interface, const TGlobalToLocal &globalToLocal)
 
template<typename TGlobalToLocal >
void DeserializeLayout (BinaryBuffer &stream, IndexLayout &layout, const TGlobalToLocal &globalToLocal)
 
template<typename TSparseMatrix , class TIStream >
void DeserializeMatrix (TIStream &buf, TSparseMatrix &A)
 
bool DeserializeMultiGridElements (MultiGrid &mg, BinaryBuffer &in, std::vector< Vertex * > *pvVrts=NULL, std::vector< Edge * > *pvEdges=NULL, std::vector< Face * > *pvFaces=NULL, std::vector< Volume * > *pvVols=NULL, MultiElementAttachmentAccessor< AGeomObjID > *paaID=NULL)
 Creates multi-grid elements from a binary stream. More...
 
template<typename T , class TIStream >
void DeserializeParallelData (TIStream &buf, T &t, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > &ic, pcl::ProcessCommunicator &pc)
 
template<typename TConnectionType >
size_t DeserializeRow (BinaryBuffer &stream, stdvector< TConnectionType > &cons, ParallelNodes &PN)
 
bool DeserializeSubsetHandler (Grid &grid, ISubsetHandler &sh, GridObjectCollection goc, BinaryBuffer &in, bool readPropertyMap=true)
 assigns subset-indices to all elements in the goc from a stream. More...
 
bool DeserializeSubsetHandler (Grid &grid, ISubsetHandler &sh, BinaryBuffer &in, bool readPropertyMap=true)
 assigns subset-indices to all elements in the grid from a stream. More...
 
template<typename T , class TIStream >
void DeserializeUniquePart (TIStream &buf, ParallelMatrix< T > &A)
 
template<typename TValueType , class TIStream >
void DeserializeUniquePart (TIStream &buf, ParallelVector< TValueType > &v)
 
template<typename T >
MathMatrix< 0, 0, T >::value_type Determinant (const MathMatrix< 0, 0, T > &m)
 
void dgetrf_ (lapack_int *m, lapack_int *n, lapack_double *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void dgetri_ (lapack_int *n, lapack_double *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_double *pWork, lapack_int *worksize, lapack_int *info)
 
void dgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const lapack_double *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_double *b, lapack_int *ldb, lapack_int *info)
 
template<typename Matrix_type , typename Vector_type >
bool diag_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number damp)
 Performs a jacobi-step. More...
 
template<typename Matrix_type , typename Vector_type >
void diag_step (const Matrix_type &A, Vector_type &c, const Vector_type &d, number damp)
 Performs a jacobi-step. More...
 
template<typename Matrix_type , typename Vector_type >
bool Diag_Vanka_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number relax)
 
DebugID DID_REFERENCE_MAPPING ("REFERENCE_MAPPING")
 
DebugID DID_REFERENCE_MAPPING_GLOB_TO_LOC ("REFERENCE_MAPPING_GLOB_TO_LOC")
 
int DimensionOfSubset (const ISubsetHandler &sh, int si)
 returns the current dimension of the subset More...
 
int DimensionOfSubsets (const ISubsetHandler &sh)
 Returns the dimension of geometric objects, that are contained in the subset handler. More...
 
UG_API bool DirectoryExists (const char *dirname)
 Checks the existence of a given directory. More...
 
static bool DirectoryExists (std::string filename)
 
void DisplayVacantMemory ()
 
number DistanceLineToLine (const vector3 &a1, const vector3 &a2, const vector3 &b1, const vector3 &b2)
 calculates the distance between two 3d line segments More...
 
template<class vector_t >
number DistancePointToLine (const vector_t &v, const vector_t &v1, const vector_t &v2)
 calculates the distance of a point to a line segment More...
 
template<class vector_t >
number DistancePointToLine (number &tOut, const vector_t &v, const vector_t &v1, const vector_t &v2)
 
template<class vector_t >
number DistancePointToPlane (const vector_t &v, const vector_t &p, const vector_t &n)
 Calculates the distance between the specified point and the plane. More...
 
template<class vector_t >
number DistancePointToRay (vector_t &vOut, number &tOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 
template<class vector_t >
number DistancePointToRay (const vector_t &v, const vector_t &from, const vector_t &dir)
 calculates the distance of a point to a ray More...
 
template<class vector_t >
number DistancePointToRay (number &tOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 
template<class vector_t >
number DistancePointToTriangle (vector_t &vOut, number &bc1Out, number &bc2Out, const vector_t &p, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &n)
 calculates the minimal distance of a point to a triangle. More...
 
template<typename TDomain >
static bool DistributeDomain (TDomain &domainOut, PartitionMap &partitionMap, bool createVerticalInterfaces)
 distributes a already distributed domain onto the specified processes More...
 
template<typename TDomain >
static bool DistributeDomain (TDomain &domainOut, PartitionMap &partitionMap, bool createVerticalInterfaces)
 
static void DistributeExpansionMarks3D (Grid &grid, SubsetHandler &sh, Selector &sel, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds, Grid::VertexAttachmentAccessor< AInt > &aaMarkVRT, Grid::EdgeAttachmentAccessor< AInt > &aaMarkEDGE, Grid::FaceAttachmentAccessor< AInt > &aaMarkFACE)
 
bool DistributeGrid (MultiGrid &mg, SubsetHandler &shPartition, GridDataSerializationHandler &serializer, bool createVerticalInterfaces, const std::vector< int > *processMap=NULL, const pcl::ProcessCommunicator &procComm=pcl::ProcessCommunicator())
 distributes/redistributes parts of possibly distributed grids. More...
 
std::string DistributionPercentage (std::vector< double > values)
 
template<int refDim, int dim>
bool DoFPositionElem (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<int dim>
bool DoFPositionVertex (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<typename TMatrix >
numberDoFRef (TMatrix &mat, const DoFIndex &iInd, const DoFIndex &jInd)
 
template<typename TMatrix >
const numberDoFRef (const TMatrix &mat, const DoFIndex &iInd, const DoFIndex &jInd)
 
template<typename TVector >
numberDoFRef (TVector &vec, const DoFIndex &ind)
 
template<typename TVector >
const numberDoFRef (const TVector &vec, const DoFIndex &ind)
 
template<typename TTo , typename TFrom >
TTo & DownCast (const TTo &pfrom, TFrom &p)
 
template<typename TTo , typename TFrom >
TTo & DownCast (const TTo &pfrom, const TFrom &p)
 
template<class vector_t >
number DropAPerpendicular (vector_t &vOut, const vector_t &v, const vector_t &v0, const vector_t &v1)
 finds the projection of v onto the line defined by v0 and v1 More...
 
template<class TAPos >
bool Duplicate (Grid &grid, Selector &sel, const typename TAPos::ValueType &offset, TAPos &aPos, bool deselectOld=true, bool selectNew=true)
 Duplicates the selected part of a grid and translates it by an offset. More...
 
bool EdgeCollapseIsValid (Grid &grid, Edge *e)
 Checks if an edge-collapse would invalidate the current topology. More...
 
bool EdgeContains (EdgeVertices *e, Vertex *vrt)
 
bool EdgeContains (EdgeVertices *e, Vertex *vrt1, Vertex *vrt2)
 
bool EdgeExists (SweepLineVertex *v0, SweepLineVertex *v1)
 
template<class TAAPosVRT >
number EdgeLength (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the length of the given edge. More...
 
template<class TAAPosVRT >
UG_API number EdgeLength (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the length of the given edge. More...
 
template<class TAAPosVRT >
number EdgeLengthSq (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the squared length of the given edge. More...
 
template<class TAAPosVRT >
UG_API number EdgeLengthSq (const EdgeVertices *e, TAAPosVRT &aaPos)
 Calculates the squared length of the given edge. More...
 
bool EdgeOrientationMatches (EdgeVertices *ev, Face *f)
 checks if the edge-orientation of the edge and the face matches. More...
 
void EdgeReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vGlobPos)
 
template<class TElem >
static std::string ElementDebugInfo_IMPL (const Grid &grid, TElem *e)
 
template<typename TElem , typename TDomain >
number ElementDiameter (const TElem &elem, TDomain &domain)
 returns the maximal distance between to element vertices More...
 
template<typename TElem , typename TDomain >
number ElementDiameter (TElem &elem, TDomain &domain)
 
template<class TElem , class TAAPos >
number ElementDiameter (Grid &grid, TAAPos &aaPos, TElem *elem)
 returns the maximal distance between to element vertices More...
 
template<typename TElem , typename TDomain >
number ElementDiameterSq (const TElem &elem, TDomain &domain)
 returns the maximal squared distance between to element vertices More...
 
template<typename TElem , typename TDomain >
number ElementDiameterSq (TElem &elem, TDomain &domain)
 
template<class TElem , class TAAPos >
number ElementDiameterSq (Grid &grid, TAAPos &aaPos, TElem *elem)
 returns the maximal squared distance between to element vertices More...
 
template<class TAAPos >
number ElementDiameterSq (Grid &grid, TAAPos &aaPos, GridObject *elem)
 returns the maximal squared distance between to element vertices More...
 
template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ElementGaussSeidelStep (const typename TAlgebra::matrix_type &A, GridFunction< TDomain, TAlgebra > &c, const typename TAlgebra::vector_type &d, number relax)
 
template<typename TRefElem , int TWorldDim>
void ElementNormal (MathVector< TWorldDim > &normalOut, const MathVector< TWorldDim > *vCornerCoords)
 Normal to an Element in a given Dimension. More...
 
template<int dim>
void ElementNormal (ReferenceObjectID roid, MathVector< dim > &normalOut, const MathVector< dim > *vCornerCoords)
 
template<>
void ElementNormal< 1 > (ReferenceObjectID roid, MathVector< 1 > &normalOut, const MathVector< 1 > *vCornerCoords)
 
template<>
void ElementNormal< 2 > (ReferenceObjectID roid, MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 
template<>
void ElementNormal< 3 > (ReferenceObjectID roid, MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 
template<>
void ElementNormal< ReferenceEdge, 2 > (MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 Normal to a Line in 2d. More...
 
template<>
void ElementNormal< ReferenceEdge, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Line in 3d. More...
 
template<>
void ElementNormal< ReferenceQuadrilateral, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Quadrilateral in 3d. More...
 
template<>
void ElementNormal< ReferenceTriangle, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Triangle in 3d. More...
 
template<>
void ElementNormal< ReferenceVertex, 1 > (MathVector< 1 > &normalOut, const MathVector< 1 > *vCornerCoords)
 Normal to a Point in 1d. More...
 
template<>
void ElementNormal< ReferenceVertex, 2 > (MathVector< 2 > &normalOut, const MathVector< 2 > *vCornerCoords)
 Normal to a Point in 2d. More...
 
template<>
void ElementNormal< ReferenceVertex, 3 > (MathVector< 3 > &normalOut, const MathVector< 3 > *vCornerCoords)
 Normal to a Point in 3d. More...
 
template<typename TRefElem , int TWorldDim>
bool ElementSideRayIntersection (size_t &sideOut, MathVector< TWorldDim > &GlobalIntersectionPointOut, MathVector< TRefElem::dim > &LocalIntersectionPoint, const MathVector< TWorldDim > &From, const MathVector< TWorldDim > &Direction, bool bPositiv, const MathVector< TWorldDim > *vCornerCoords)
 ElementSideRayIntersection. More...
 
template<typename TRefElem , int TWorldDim>
number ElementSize (const MathVector< TWorldDim > *vCornerCoords)
 Volume of an Element in a given Dimension. More...
 
template<typename TElem , typename TPosition >
number ElementSize (const TElem &elem, const Grid::VertexAttachmentAccessor< Attachment< TPosition > > &aaPos)
 returns the size of a geometric object More...
 
template<typename TElem , typename TDomain >
number ElementSize (const TElem &elem, const TDomain &domain)
 returns the size of a geometric object More...
 
template<int dim>
number ElementSize (ReferenceObjectID roid, const MathVector< dim > *vCornerCoords)
 
template<>
number ElementSize< 1 > (ReferenceObjectID roid, const MathVector< 1 > *vCornerCoords)
 
template<>
number ElementSize< 2 > (ReferenceObjectID roid, const MathVector< 2 > *vCornerCoords)
 
template<>
number ElementSize< 3 > (ReferenceObjectID roid, const MathVector< 3 > *vCornerCoords)
 
template<>
number ElementSize< ReferenceEdge, 1 > (const MathVector< 1 > *vCornerCoords)
 Volume of a Line in 1d. More...
 
template<>
number ElementSize< ReferenceEdge, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Line in 2d. More...
 
template<>
number ElementSize< ReferenceEdge, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Line in 3d. More...
 
template<>
number ElementSize< ReferenceHexahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Hexahedron in 3d. More...
 
template<>
number ElementSize< ReferenceOctahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of an Octahedron in 3d. More...
 
template<>
number ElementSize< ReferencePrism, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Prism in 3d. More...
 
template<>
number ElementSize< ReferencePyramid, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Pyramid in 3d. More...
 
template<>
number ElementSize< ReferenceQuadrilateral, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Quadrilateral in 2d. More...
 
template<>
number ElementSize< ReferenceQuadrilateral, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Quadrilateral in 3d. More...
 
template<>
number ElementSize< ReferenceTetrahedron, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Tetrahedron in 3d. More...
 
template<>
number ElementSize< ReferenceTriangle, 2 > (const MathVector< 2 > *vCornerCoords)
 Volume of a Triangle in 2d. More...
 
template<>
number ElementSize< ReferenceTriangle, 3 > (const MathVector< 3 > *vCornerCoords)
 Volume of a Triangle in 3d. More...
 
template<class T >
bool EliminateInvalidCells (Field< T > &field, const T &noDataValue)
 eliminates invalid cells by repeatedly filling those cells with averages of neighboring cells More...
 
static void EnableDelaunayDebugSave (bool enable=true)
 
bool EnableMemTracker (bool b)
 
template<typename matrix_type , typename vector_type >
double EnergyNorm (vector_type &x, matrix_type &A, vector_type &tmp)
 
template<typename matrix_type , typename vector_type >
double EnergyNorm (vector_type &x, matrix_type &A)
 
template<typename matrix_type , typename vector_type >
double EnergyProd (vector_type &v1, matrix_type &A, vector_type &v2, vector_type &tmp)
 
template<typename matrix_type , typename vector_type >
double EnergyProd (vector_type &v1, matrix_type &A, vector_type &v2)
 
double EnergyProd (double v1, double M, double v2)
 
template<typename T1 , typename T2 >
double EnergyProd (const T1 &v1, const DenseMatrix< T2 > &M, const T1 &v2)
 
template<class T >
std::string EntryToString (const Table< T > &table, size_t rowInd, size_t colInd)
 Returns a string-representation of the current entry. More...
 
std::string EntryToString (const Table< std::string > &table, size_t rowInd, size_t colInd)
 
std::string EntryToString (const Table< std::stringstream > &table, size_t rowInd, size_t colInd)
 
void EraseConnectingElements (Grid &grid, Vertex *v1, Vertex *v2)
 erases all elements that connect v1 and v2 More...
 
template<class TElem >
UG_API void EraseElements (Grid &grid, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd)
 erases all elements between iterBegin and iterEnd. More...
 
template<class TElem >
void EraseElements (Grid &grid, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd)
 erases all elements between iterBegin and iterEnd. More...
 
void EraseEmptySubsets (ISubsetHandler &sh)
 Erases all subsets which do not contain any geometric objects. More...
 
template<class TSelector >
void EraseSelectedObjects (TSelector &sel)
 Erases selected objects from the associated grid. More...
 
template void EraseSelectedObjects< MGSelector > (MGSelector &)
 
template void EraseSelectedObjects< Selector > (Selector &)
 
std::string ErrorStringFromStdException (const std::exception *pex)
 
template<typename TGradientEvaluator , typename TFunction >
void EvaluateGradientJump_Norm (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 
template<typename TGradientEvaluator , typename TFunction >
void EvaluateGradientJump_SideIntegral (TFunction &u, size_t fct, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError, bool addErrSquareToAAError=false)
 
template<typename TFunction >
void EvaluateResidualErrorP1 (SmartPtr< TFunction > u, SmartPtr< UserData< number, TFunction::dim > > f, const char *cmp, number time, int quadOrder, std::string quadType, MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &aaError)
 Evaluates the residual error for P1 shape functions (with some simplifications) More...
 
template<class side_t , class TFunction >
void ExchangeAndAdjustSideErrors (TFunction &u, ANumber aSideError, ANumber aNumElems)
 
bool ExpandFractures2d (Grid &grid, SubsetHandler &sh, const std::vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures2d (Grid &grid, SubsetHandler &sh, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures3d (Grid &grid, SubsetHandler &sh, const std::vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExpandFractures3d (Grid &grid, SubsetHandler &sh, const vector< FractureInfo > &fracInfos, bool expandInnerFracBnds, bool expandOuterFracBnds)
 
bool ExportGridToSMESH (Grid &grid, const char *filename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes=NULL, AInt *paNodeBoundaryMarker=NULL, AInt *paFaceBoundaryMarker=NULL, std::vector< vector3 > *pvHoles=NULL, std::vector< vector3 > *pvRegionPositions=NULL, std::vector< int > *pvRegionAttributes=NULL, std::vector< float > *pvRegionVolumeConstraints=NULL)
 writes an SMESH file. More...
 
bool ExportGridToSMESH (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *psh=NULL, std::vector< AFloat > *pvNodeAttributes=NULL, std::vector< vector3 > *pvHoles=NULL, std::vector< vector3 > *pvRegionPositions=NULL, std::vector< int > *pvRegionAttributes=NULL, std::vector< float > *pvRegionVolumeConstraints=NULL)
 writes an SMESH file. More...
 
bool ExportGridToTETGEN (Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute)
 
bool ExportGridToTIKZ (Grid &grid, const char *filename, const ISubsetHandler *psh, APosition aPos, TikzExportDesc desc)
 
bool ExportGridToUG (const Grid &g, const SubsetHandler &shFace, const SubsetHandler &shVolume, const char *fileNamePrefix, const char *lgmName, const char *problemName, int convex)
 converts tetgen files (*.node, *.face and *.ele) to UG files (*.lgm, *.ng) More...
 
bool ExportGridToUG_2D (Grid &grid, const char *fileName, const char *lgmName, const char *problemName, int convex, SubsetHandler *psh=NULL)
 exports a grid to a 2d lgm / ng file combination. More...
 
template<class TSelector >
void ExtendSelection (TSelector &sel, size_t extSize, ISelector::status_t status)
 extends the selection to neighbours of selected elements. More...
 
template<class TSelector >
UG_API void ExtendSelection (TSelector &sel, size_t extSize, ISelector::status_t status=ISelector::SELECTED)
 extends the selection to neighbours of selected elements. More...
 
template void ExtendSelection< MGSelector > (MGSelector &sel, size_t extSize, ISelector::status_t status)
 
template void ExtendSelection< Selector > (Selector &sel, size_t extSize, ISelector::status_t status)
 
string extract_path (const string &filename)
 
template<typename TDomain , typename TBaseElem >
void ExtractAlgebraIndices2 (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &fctIndex)
 
template<typename TFunction >
void ExtractPositions (const TFunction &u, std::vector< MathVector< TFunction::domain_type::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain >
void ExtractPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, const size_t fct, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain , typename TBaseElem >
void ExtractPositionsElem (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, const size_t fct, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template<typename TDomain >
void ExtractPositionsVertex (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< MathVector< TDomain::dim > > &vPos)
 
template<typename TDomain >
void ExtractPositionsVertex (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &vPosPair)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector1 &, Grid::VertexAttachmentAccessor< Attachment< vector1 > >, uint, std::vector< Volume *> *)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector2 &, Grid::VertexAttachmentAccessor< Attachment< vector2 > >, uint, std::vector< Volume *> *)
 
template void Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector3 &, Grid::VertexAttachmentAccessor< Attachment< vector3 > >, uint, std::vector< Volume *> *)
 
template void Extrude< vector1 > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector1 &, uint, Attachment< vector1 > &, std::vector< Volume *> *)
 
template void Extrude< vector2 > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector2 &, uint, Attachment< vector2 > &, std::vector< Volume *> *)
 
template void Extrude< vector3 > (Grid &, std::vector< Vertex *> *, std::vector< Edge *> *, std::vector< Face *> *, const vector3 &, uint, Attachment< vector3 > &, std::vector< Volume *> *)
 
static bool ExtrudeCylinder (Grid &grid, SubsetHandler *sh, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, int bottomSubInd, int cylSubInd, Selector *pSel)
 
bool ExtrudeCylinder (Grid &grid, SubsetHandler &sh, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, int bottomSubInd=-1, int cylSubInd=-1, Selector *pSel=NULL)
 adapts the grid around the given vertex to a cylinder and extrudes it. More...
 
bool ExtrudeCylinder (Grid &grid, Vertex *vrt, const vector3 &direction, number height, number radius, number rimSnapThreshold, Grid::VertexAttachmentAccessor< APosition > &aaPos, Selector *pSel=NULL)
 adapts the grid around the given vertex to a cylinder and extrudes it. More...
 
void ExtrudeLayers (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler &sh, bool allowForTetsAndPyras)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector1 > > &aaPos)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector2 > > &aaPos)
 
static bool ExtrusionHelper_CheckOrientation (Volume *v, Grid::VertexAttachmentAccessor< Attachment< vector3 > > &aaPos)
 
template<class TAAPosVRT >
UG_API number FaceArea (FaceVertices *f, TAAPosVRT &aaPos)
 Returns the area of a convex face. More...
 
template<class TIterator , class TAAPosVRT >
UG_API number FaceArea (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the area sum of convex faces. More...
 
template<typename TDomain >
static number FaceArea (TDomain &dom, ISubsetHandler &sh, int si, size_t lvl)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, int si, size_t lvl)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, int si)
 
template<typename TDomain >
static number FaceArea (TDomain &dom, ISelector &sel)
 
template<class TAAPosVRT >
number FaceArea (FaceVertices *f, TAAPosVRT &aaPos)
 Returns the area of a convex face. More...
 
template<class TAAPosVRT >
number FaceArea (ISubsetHandler &sh, int si, size_t lvl, TAAPosVRT &aaPos)
 Returns the area sum of convex faces given by subset index and level. More...
 
template<class TIterator , class TAAPosVRT >
number FaceArea (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the area sum of convex faces. More...
 
template<class TAAPosVRT >
UG_API number FaceArea (ISubsetHandler &sh, int si, size_t lvl, TAAPosVRT &aaPos)
 Returns the area sum of convex faces given by subset index and level. More...
 
template<class TAAPosVRT >
UG_API number FaceArea (ISelector &sel, TAAPosVRT &aaPos)
 
bool FaceContains (Face *f, EdgeVertices *ev)
 returns true if the given face contains the two given vertices More...
 
bool FaceContains (FaceVertices *f, Vertex *v)
 returns true if the given face contains the given vertex More...
 
static bool FaceIsOnRightSide (Face *f, Edge *e)
 
static int FacePlane (const vector3 &p)
 
number FaceQuality (Face *f, Grid::VertexAttachmentAccessor< APosition > aaPos)
 a simple measure for the quality of a face More...
 
template<typename Matrix_type >
bool FactorizeILU (Matrix_type &A)
 
template<typename Matrix_type >
bool FactorizeILUBeta (Matrix_type &A, number beta)
 
template<typename Matrix_type >
bool FactorizeILUSorted (Matrix_type &A, const number eps=1e-50)
 
UG_API bool FileCompare (const char *file1, const char *file2)
 !!! Serial i/o version !!! More...
 
UG_API bool FileExists (const char *filename)
 !!! Serial i/o version !!! More...
 
static bool FileExists (std::string filename)
 
string FilenameWithoutExtension (string str)
 
UG_API std::string FilenameWithoutExtension (std::string str)
 returns the best guess of the filename from given string More...
 
string FilenameWithoutPath (const string &str)
 
UG_API std::string FilenameWithoutPath (const std::string &str)
 returns best guess of a filename from a given string More...
 
UG_API size_t FileSize (const char *filename)
 Returns size of the specified file in bytes. More...
 
static size_t FileSize (std::string filename)
 
bool FileTypeIs (const char *filename, const char *extension)
 !!! Serial i/o version !!! More...
 
template<typename TElem , typename TDomain >
void FillCornerCoordinates (typename TDomain::position_type vCornerCoordsOut[], const TElem &elem, const TDomain &domain)
 returns the corner coordinates of a geometric object More...
 
static void FillDistInfos (MultiGrid &mg, SubsetHandler &shPartition, MGSelector &msel, DistInfoSupplier &distInfos, const std::vector< int > *processMap, const pcl::ProcessCommunicator &procComm, bool createVerticalInterfaces, vector< bool > &partitionIsEmpty)
 
IndexLayout::Interface::iterator find (IndexLayout::Interface &interface, size_t i)
 
template<typename TLayout >
TLayout::iterator find_pid (TLayout &layout, int pid)
 
template<class TElem , class TVertexPositionAttachmentAccessor >
UG_API TElem * FindClosestByCoordinate (const typename TVertexPositionAttachmentAccessor::ValueType &coord, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the element of the given type, whose center is closest to coord. More...
 
template<class TElem , class TVertexPositionAttachmentAccessor >
TElem * FindClosestByCoordinate (const typename TVertexPositionAttachmentAccessor::ValueType &coord, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the element of the given type, whose center is closest to coord. More...
 
bool FindClosestPlane (vector3 &centerOut, vector3 &normalOut, const vector3 *pointSet, size_t numPoints)
 Finds the plane which minimizes the distance to the given point set. More...
 
template<class TAAPosVRT >
int FindCloseVertexInArray (std::vector< Vertex *> &array, const typename TAAPosVRT::ValueType &p, TAAPosVRT &aaPos, number snapThreshold)
 returns the index of the first vertex closer to p than snapThreshold. More...
 
template<class tree_t >
bool FindContainingElement (typename tree_t::elem_t &elemOut, const tree_t &tree, const typename tree_t::vector_t &point)
 
std::string FindDirInStandardPaths (const char *dirname)
 searches the directory in the standard paths. More...
 
vector< string > FindDuplicates (const vector< string > &vec)
 
UG_API std::vector< std::string > FindDuplicates (const std::vector< std::string > &vec)
 Finds and returns all duplicate elements of given vector. More...
 
template<class TIterator , class TAttAcc >
TIterator FindElementByValue (TIterator begin, TIterator end, const typename TAttAcc::ValueType &val, TAttAcc &aa)
 returns the iterator whose element has the specified attachment value. More...
 
template<class tree_t >
bool FindElementsInIntersectingNodes (std::vector< typename tree_t::elem_t > &elemsOut, const tree_t &tree, const typename tree_t::box_t &bbox)
 
std::string FindFileInStandardPaths (const char *filename)
 searches the file in the standard paths. More...
 
template<class TEdgeIterator , class TAAPosVRT >
EdgeFindLongestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 
template<class tree_t >
size_t FindLowestLeafNodeLevel (const tree_t &tree)
 
bool FindNormal (vector3 &normOut, const vector3 &v)
 finds a normal to the given vector in 3d. More...
 
bool FindParam (const char *param, int argc, const char *const *argv)
 
void FindPositionInInterfaces (std::vector< std::pair< int, size_t > > &vIndexInterface, const IndexLayout &layout, size_t index)
 returns in a vector all appearencies of an index in a layout More...
 
template<class TEdgeIterator , class TAAPosVRT >
EdgeFindShortestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 Returns the shortest edge in a list of edges. More...
 
template<class TEdgeIterator , class TAAPosVRT >
UG_API EdgeFindShortestEdge (TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, TAAPosVRT &aaPos)
 Returns the shortest edge in a list of edges. More...
 
template<class TIter , class TAAPos >
size_t FindSlivers (std::vector< typename TIter::value_type > &sliversOut, TIter elemsBegin, TIter elemsEnd, number thresholdRatio, TAAPos aaPos, bool clearContainer=true)
 Searchs for slivers in the given list of elements. More...
 
template<class TIterator , class TAAPosVRT >
UG_API FaceFindSmallestFace (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the face with the smallest area. More...
 
template<class TIterator , class TAAPosVRT >
FaceFindSmallestFace (TIterator facesBegin, TIterator facesEnd, TAAPosVRT &aaPos)
 Returns the face with the smallest area. More...
 
template<typename TBaseObj >
void FindSubsetGroups (std::vector< int > &minCondInd, const std::vector< bool > &isMarked, const ISubsetHandler &sh, const NeighborhoodType nbhType=NHT_VERTEX_NEIGHBORS)
 
VertexFindVertexByCoordiante (vector3 &coord, VertexIterator iterBegin, VertexIterator iterEnd, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns the vertex that is the closest to the given coordinate More...
 
template<size_t dim>
int FindVertexByCoordinate (const MathVector< dim > &coord, size_t ncoords, const MathVector< dim > vCoords[])
 returns (non-unique?) index of closest vertex More...
 
void FinishShinyCallLogging ()
 
template<class TEdgeIterator >
void FixEdgeOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 creates uniform orientation of neighboured edges. More...
 
template<class TEdgeIterator >
UG_API void FixEdgeOrientation (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd)
 creates uniform orientation of neighboured edges. More...
 
template<class TFaceIterator >
void FixFaceOrientation (Grid &grid, TFaceIterator facesBegin, TFaceIterator facesEnd)
 creates uniform orientation of neighboured faces. More...
 
template<class TFaceIterator >
UG_API void FixFaceOrientation (Grid &grid, TFaceIterator facesBegin, TFaceIterator facesEnd)
 creates uniform orientation of neighboured faces. More...
 
template<class TVolIterator , class TAAPosVRT >
UG_API int FixOrientation (Grid &grid, TVolIterator volsBegin, TVolIterator volsEnd, TAAPosVRT &aaPosVRT)
 Changes orientation of badly oriented volumes. More...
 
template<class TVolIterator , class TAAPosVRT >
int FixOrientation (Grid &grid, TVolIterator volsBegin, TVolIterator volsEnd, TAAPosVRT &aaPosVRT)
 Changes orientation of badly oriented volumes. More...
 
template<typename Matrix_type , typename Vector_type >
void forward_gs_step (Vector_type &c, const Matrix_type &A, const Vector_type &d, const size_t i, const number relaxFactor)
 commmon GaussSeidel-step-calls for a single index 'i' More...
 
template<typename T >
void GatherVectorOnOne (HorizontalAlgebraLayouts &agglomerationLayout, ParallelVector< T > &collectedVec, const ParallelVector< T > &vec, ParallelStorageType type)
 
template<typename T >
void GatherVectorOnOne (IndexLayout &agglomeratedMaster, IndexLayout &agglomeratedSlave, pcl::InterfaceCommunicator< IndexLayout > &com, ParallelVector< T > &collectedVec, const ParallelVector< T > &vec, ParallelStorageType type, bool bRoot)
 
template<typename A_type , typename TLambdaVectorType >
int GeneralizedEigenvalueProblemComplex (DenseMatrix< A_type > &A, DenseMatrix< A_type > &X, TLambdaVectorType &lambda, DenseMatrix< A_type > &B, bool bSortEigenvalues=false)
 
void GenerateAlgebraIDHashList (AlgebraIDHashList &hash, AlgebraIDVec &algebraIDs)
 Creates a hash which allows a algebraID->localIndex mapping. More...
 
template<class TLayout >
void GenerateGlobalAlgebraIDs (pcl::InterfaceCommunicator< TLayout > &communicator, std::vector< AlgebraID > &idsOut, size_t numIDs, const TLayout &masterLayout, const TLayout &slaveLayout)
 Generates a set of unique global algebra ids. More...
 
template<class TIndVec >
void GenerateGlobalConsecutiveIndices (TIndVec &indsOut, size_t numLocalInds, const AlgebraLayouts &layouts)
 Generates a set of global consecutive indices. More...
 
void GenerateIcosahedron (Grid &grid, const vector3 &center, number radius, AVector3 &aPos)
 Creates an Icosahedron. More...
 
void GenerateIcosphere (Grid &grid, const vector3 &center, number radius, int numRefinements, AVector3 &aPos, Selector *psel=NULL)
 Creates a ico-sphere by repeatedly refining an icosahedron. More...
 
int GenerateScriptReferenceDocu (const char *baseDir, bool silent, bool genHtml, bool genCpp, bool genList)
 
template<size_t dim>
void GenVecCross (MathVector< dim > &result, const MathVector< dim > &v_1, const MathVector< dim > &v_2)
 calculates the usual cross product in 3d, and the (det, 0) vector as a cross product in 2d More...
 
template<>
void GenVecCross< 2 > (MathVector< 2 > &result, const MathVector< 2 > &v_1, const MathVector< 2 > &v_2)
 specialization of the "generalized vector product" in 2d. More...
 
template<>
void GenVecCross< 3 > (MathVector< 3 > &result, const MathVector< 3 > &v_1, const MathVector< 3 > &v_2)
 specialization of the "generalized vector product" in 3d. More...
 
number GeometricApproximationDegree (SimpleGrid &sg, int triIndex)
 the returned degree lies between 0 and 1. The closer to 1 the better. More...
 
number GeometricApproximationDegree (SimpleGrid &sg)
 sums GeometricApproximationDegree for each triangle. More...
 
template<class vector_t >
number GeometricApproximationDegree (vector_t &n1, vector_t &n2, vector_t &n3, vector_t &tn)
 the returned degree lies between 0 and 1. The closer to 1 the better. More...
 
void get_algebra_indices (ConstSmartPtr< DoFDistribution > dd, ConstrainedVertex *hgVrt, std::vector< Vertex *> &vConstrainingVrt, std::vector< size_t > &constrainedInd, std::vector< std::vector< size_t > > &vConstrainingInd)
 
template<typename TDomain >
void get_algebra_indices (ConstSmartPtr< DoFDistribution > dd, ConstrainedVertex *hgVrt, std::vector< Vertex *> &vConstrainingVrt, std::vector< size_t > &constrainedInd, std::vector< std::vector< size_t > > &vConstrainingInd, const SortVertexPos< TDomain::dim > &sortVertexPos)
 
double get_clock_s ()
 
void * get_mem (size_t size)
 
template<typename T >
size_t get_val (const T &t)
 
size_t get_val (size_t i)
 
int GetAssociatedFaces (Face **facesOut, Grid &grid, Edge *e, int maxNumFaces)
 writes associated faces of e to facesOut. More...
 
int GetAssociatedInterfaceType (int interfaceType)
 Returns the type of associated interfaces. More...
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrection (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, DenseMatrix< VariableArray2< double > > &AlocInv, std::vector< size_t > &indices, DenseVector< VariableArray1< double > > &tmp, DenseVector< VariableArray1< double > > &tmp2)
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrection (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, DenseMatrix< VariableArray2< double > > &AlocInv, std::vector< size_t > &indices)
 
template<typename TSparseMatrixType , typename TVectorType >
void GetBlockGSCorrectionILUT (const TSparseMatrixType &A, TVectorType &x, TVectorType &b, SmartPtr< ILUTPreconditioner< CPUAlgebra > > &ilut, std::vector< size_t > &indices, CPUAlgebra::vector_type &tmp, CPUAlgebra::vector_type &tmp2)
 
GlobalBoundaryRefinementRule GetBoundaryRefinementRule ()
 
string GetBytesSizeString (size_t s, int length)
 
vector3 GetColorFromStandardPalette (int index)
 Returns an rgb vector (values ranging from 0 to 1), with the i-th default color. More...
 
template<typename T >
size_t GetCols (const T &t)
 
template<>
size_t GetCols (const number &t)
 
template<typename T >
size_t GetCols (const DenseMatrix< T > &t)
 
EdgeGetConnectedEdge (Grid &g, Vertex *vrt, Face *tri)
 returns the edge in the triangle tri, which does not contain vrt. More...
 
VertexGetConnectedVertex (Edge *e, Vertex *v)
 returns the vertex that is connected to v via e. More...
 
VertexGetConnectedVertex (EdgeVertices *e, Face *f)
 returns the index of the first vertex that is contained in f and is not contained in e. More...
 
int GetConnectedVertexIndex (Face *f, const EdgeDescriptor &ed)
 returns the index of the first vertex that is contained in the specified face and is not contained in the given edge. More...
 
template<typename TSparseMatrix >
void GetCuthillMcKeeOrder (const TSparseMatrix &mat, std::vector< size_t > &newIndex)
 
DebugIDManagerGetDebugIDManager ()
 
template<class TAttachment >
UG_API TAttachment & GetDefaultPositionAttachment ()
 this method can be used to retrieve the default position attachments for different types. More...
 
template<>
APositionGetDefaultPositionAttachment< APosition > ()
 
template<>
APosition1GetDefaultPositionAttachment< APosition1 > ()
 
template<>
APosition2GetDefaultPositionAttachment< APosition2 > ()
 
template<typename TDenseType , typename TSparseMatrix >
size_t GetDenseDoubleFromSparse (TDenseType &A, const TSparseMatrix &S)
 
template<typename TSparseMatrix >
DenseMatrixFromSparseMatrix< TSparseMatrix >::type & GetDenseFromSparse (typename DenseMatrixFromSparseMatrix< TSparseMatrix >::type &A, const TSparseMatrix &S)
 
template<typename T >
double GetDet2 (const DenseMatrix< T > &mat)
 
template<typename T >
double GetDet3 (const DenseMatrix< T > &mat)
 
void GetDiag (double &a, double b)
 
template<typename T1 , typename T2 >
void GetDiag (T1 &m1, const T2 &m)
 
template<typename T1 , typename T2 >
void GetDiagSqrt (T1 &v, const T2 &m)
 
void GetDiagSqrt (double &a, double b)
 
UG_API bool GetDirectoriesInDirectory (std::vector< std::string > &dirsOut, const char *dir)
 Returns a list of all directories in a directory. More...
 
string::size_type GetDirectorySeperatorPos (const string &str)
 
std::string::size_type GetDirectorySeperatorPos (const std::string &str)
 determines last occurrence of '/' or '\' More...
 
template<typename TDoubleType , typename TSparseMatrix >
void GetDoubleFromSparseBlock (TDoubleType &A, const TSparseMatrix &S)
 
template<typename TSparseMatrix >
size_t GetDoubleSize (const TSparseMatrix &S)
 
template<typename TDoubleSparse , typename TSparseMatrix >
size_t GetDoubleSparseFromBlockSparse (TDoubleSparse &A, const TSparseMatrix &S)
 
const char * GetDynamicLibraryPrefix ()
 returns the standard prefix of static and dynamic libraries on this os More...
 
const char * GetDynamicLibrarySuffix ()
 returns the standard suffix of dynamic libraries on this os More...
 
int GetEdgeIndex (Face *f, Edge *e)
 returns the index at which edge e is found in the given object More...
 
int GetEdgeIndex (Volume *vol, Edge *e)
 returns the index at which edge e is found in the given object More...
 
SweepLineEdgeGetEdgeOnTheLeft (MapEdgeCuts &edgeCuts, SweepLineVertex &v)
 
template<typename TDomain >
void GetElemDiscOnSubset (std::vector< IElemDisc< TDomain > *> &vSubsetElemDisc, const std::vector< IElemDisc< TDomain > *> &vElemDisc, const std::vector< SubsetGroup > &vSSGrp, int si, bool clearVec)
 
template<class TDomain , class TElem >
static TElem * GetElementByCoordinate (TDomain &dom, number x, number y, number z)
 
int GetFaceIndex (Volume *vol, Face *f)
 returns the index at which face f is found in the given object More...
 
string GetFileLine (const char *filename, size_t line)
 get a specific line of a file More...
 
string GetFileLines (const char *filename, size_t fromline, size_t toline, bool includeLineNumbers)
 get some specified lines of a file More...
 
string GetFileLinesParallel (string filename, size_t fromline, size_t toline, bool includeLineNumbers, const pcl::ProcessCommunicator &pc=pcl::ProcessCommunicator())
 
string GetFilenameExtension (const string &str)
 
UG_API std::string GetFilenameExtension (const std::string &str)
 returns the best guess of a file extensions from given string More...
 
UG_API bool GetFilesInDirectory (std::vector< std::string > &filesOut, const char *dir)
 Returns a list of all files in a directory. More...
 
int GetFirstFreeSubset (const ISubsetHandler &sh)
 returns the first subset, which does not contain any elements at all More...
 
static int GetFirstRegularVertex (Grid &grid, const SubsetHandler &sh, Face *q)
 
template<class TEdgeIterator >
std::pair< Vertex *, Edge * > GetFirstSectionOfPolyChain (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 Returns the start-vertex and start-edge of a polygonal chain. More...
 
template<class TElem >
int GetGridObjectIndex (Grid &g, TElem *elem)
 returns the index of the given element in the given grid. More...
 
int GetHighestReferencedIndex (IndexLayout &layout)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 1, 1 > > &inv, const DenseMatrix< FixedArray2< double, 1, 1 > > &mat)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 2, 2 > > &inv, const DenseMatrix< FixedArray2< double, 2, 2 > > &mat)
 
template<typename T >
bool GetInverse (block_traits< T >::inverse_type &inv, const T &m)
 
bool GetInverse (number &inv, const number &m)
 
bool GetInverse (DenseMatrix< FixedArray2< double, 3, 3 > > &inv, const DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
template<typename T , eMatrixOrdering TOrdering>
bool GetInverse (DenseMatrixInverse< VariableArray2< T, TOrdering > > &inv, const DenseMatrix< VariableArray2< T, TOrdering > > &mat)
 
template<typename T , size_t TBlockSize, eMatrixOrdering TOrdering>
bool GetInverse (DenseMatrixInverse< FixedArray2< T, TBlockSize, TBlockSize, TOrdering > > &inv, const DenseMatrix< FixedArray2< T, TBlockSize, TBlockSize, TOrdering > > &mat)
 
template<typename T >
bool GetInverse1 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
template<typename T >
bool GetInverse2 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
template<typename T >
bool GetInverse3 (DenseMatrix< T > &inv, const DenseMatrix< T > &mat)
 
bool GetInversePermutation (const std::vector< size_t > &perm, std::vector< size_t > &invPerm)
 
void * GetLibraryProcedure (DynLibHandle h, const char *procName)
 Returns the address of the specified procedure in the given library. More...
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool GetLocalMatrix (const TGlobalMatrix &mat, TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool GetLocalMatrix (const TGlobalMatrix &mat, TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TVector >
void GetLocalVector (LocalVector &lvec, const TVector &vec)
 
LogAssistantGetLogAssistant ()
 
template<typename TSparseMatrix >
size_t GetMaxConnections (const TSparseMatrix &A)
 returns max number of non-zero connections in rows More...
 
template<typename TDomain >
static number GetMaxEdgeLength (TDomain &dom)
 
template<class TElem >
int GetMaxSubsetIndex (SubsetHandler &sh)
 returns the index of the last subset, that contains elements of type TElem. More...
 
template<class tree_t >
std::pair< size_t, size_t > GetMinMaxNumElements (const tree_t &tree, size_t lvl)
 
template<typename matrix_type , typename vector_type >
ug::ParallelStorageType GetMultType (const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &x)
 
template<typename TSparseMatrix >
void GetNeighborhood (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices, std::vector< bool > &bVisited, bool bResetVisitedFlags=true)
 
template<typename TSparseMatrix >
void GetNeighborhood (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices)
 
template<typename TSparseMatrix >
void GetNeighborhood_worker (const TSparseMatrix &A, size_t node, size_t depth, std::vector< size_t > &indices, std::vector< bool > &bVisited)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy (const TSparseMatrix &A, size_t node, size_t depth, std::vector< std::vector< size_t > > &indices, std::vector< bool > &bVisited, bool bResetVisitedFlags=true)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy (const TSparseMatrix &A, size_t node, size_t depth, std::vector< std::vector< size_t > > &indices)
 
template<typename TSparseMatrix >
void GetNeighborhoodHierachy_worker (const TSparseMatrix &A, size_t node, size_t depth, size_t maxdepth, std::vector< std::vector< size_t > > &indices, std::vector< bool > &bVisited)
 
void GetNeighbours (std::vector< Volume * > &vVolsOut, Grid &grid, Volume *v, int side, bool clearContainer=true)
 collects neighbours of the given side of a volume. More...
 
void GetNeighbours (std::vector< Face * > &vFacesOut, Grid &grid, Face *f, int side, bool clearContainer=true)
 collects neighbours of the given side of a face. More...
 
std::pair< Vertex *, Edge * > GetNextSectionOfPolyChain (Grid &grid, std::pair< Vertex *, Edge * > lastSection, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 returns the next section in a polygonal chain. More...
 
template<typename TSparseMatrix >
size_t GetNNZs (const TSparseMatrix &A)
 returns the number of non-zeroes (!= number of connections) More...
 
unsigned int GetNumberOfDigits (uint64_t i)
 
size_t GetNumberOfDoFsOfPyramid (int p)
 
FaceGetOpposingSide (Grid &g, Volume *elem, Face *side)
 
EdgeGetOpposingSide (Grid &g, Face *elem, Edge *side)
 
VertexGetOpposingSide (Grid &g, Edge *elem, Vertex *side)
 
int GetParamIndex (const char *param, int argc, const char *const *argv)
 
static pair< GridObject *, char > GetParent (BinaryBuffer &in, const vector< Vertex *> &vVrts, const vector< Edge *> &vEdges, const vector< Face *> &vFaces, const vector< Volume *> &vVols)
 
const char * GetPathSeparator ()
 returns a string containing the path-separator for the current os More...
 
template<class TEdgeIterator >
size_t GetPolyChainType (Grid &grid, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, Grid::edge_traits::callback cbEdgeIsInPolyChain)
 returns an or combination of constants enumerated in PolyChainTypes. More...
 
template<typename TAPos >
int GetPositionAttachmentDimension ()
 this function returns the dimension of the position attachment at compile time More...
 
template<typename TAPos >
UG_API int GetPositionAttachmentDimension ()
 this function returns the dimension of the position attachment at compile time More...
 
const UGProfileNodeGetProfileNode (const char *name)
 
const UGProfileNodeGetProfileNode (const char *name, const UGProfileNode *node)
 
bool GetProfilerAvailable ()
 
QuadType GetQuadratureType (const std::string &name)
 returns Identifier from string More...
 
std::string GetRegistryIdentifierMessage ()
 
lapack_int getrf (lapack_int rows, lapack_int cols, lapack_float *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, lapack_double *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, std::complex< lapack_float > *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getrf (lapack_int rows, lapack_int cols, std::complex< lapack_double > *pColMajorMatrix, lapack_int lda, lapack_int *pPivot)
 
lapack_int getri (lapack_int n, lapack_float *pColMajorMatrix, lapack_int lda, const int *pPivot, lapack_float *pWork, lapack_int worksize)
 
lapack_int getri (lapack_int n, lapack_double *pColMajorMatrix, lapack_int lda, const int *pPivot, lapack_double *pWork, lapack_int worksize)
 
static bool GetRightLeftUnitIndex (int &rightIndex, int &leftIndex, Grid &grid, Face *face, const SubsetHandler &shVolume)
 identifies the right and left unit index to a given surface More...
 
template<typename T >
size_t GetRows (const T &t)
 
template<>
size_t GetRows (const number &t)
 
template<typename T >
size_t GetRows (const DenseMatrix< T > &t)
 
lapack_int getrs (eTransposeMode transposeMode, lapack_int n, lapack_int nrOfRHS, const float *pColMajorMatrix, lapack_int lda, const lapack_int *pPivot, lapack_float *pRHS, lapack_int ldb)
 
lapack_int getrs (eTransposeMode transposeMode, lapack_int n, lapack_int nrOfRHS, const double *pColMajorMatrix, lapack_int lda, const lapack_int *pPivot, lapack_double *pRHS, lapack_int ldb)
 
template<typename T >
double getScaling (const T &t)
 
template<typename T >
double getScaling (const AlphaVec_Expression< T > &t)
 
size_t GetSelfMem (const Shiny::ProfileNode *p)
 
template<class TElem >
UG_API TElem::side * GetSharedSide (Grid &grid, TElem *e1, TElem *e2)
 returns the shared side between the two elements or NULL if no such side exists. More...
 
VertexGetSharedVertex (IVertexGroup *vrts0, IVertexGroup *vrts1)
 returns the first vertex of vrts0 that is also contained in vrts1 (or NULL if no such vertex exists) More...
 
size_t GetSharedVertices (std::vector< Vertex * > &vrtsOut, IVertexGroup *vrts0, IVertexGroup *vrts1)
 fills a vector with the vertices that are both contained in vrts0 and vrts1. More...
 
template<typename T >
size_t GetSize (const T &t)
 
template<>
size_t GetSize (const number &t)
 
template<typename T >
size_t GetSize (const DenseVector< T > &t)
 
template<typename TSparseMatrixType >
void GetSliceDenseInverse (const TSparseMatrixType &A, const std::vector< size_t > &indices, DenseMatrix< VariableArray2< double > > &AlocInv, DenseMatrix< VariableArray2< typename TSparseMatrixType::value_type > > &tmp)
 
template<typename TSparseMatrixType >
void GetSliceDenseInverse (const TSparseMatrixType &A, const std::vector< size_t > &indices, DenseMatrix< VariableArray2< double > > &AlocInv)
 
template<typename TSparseMatrixType >
void GetSliceSparse (const TSparseMatrixType &A, const std::vector< size_t > &indices, CPUAlgebra::matrix_type &R)
 
template<class TElem >
static char GetSmallestLocalSubsetDimension (typename Grid::traits< TElem >::secure_container &nbrs, MultiElementAttachmentAccessor< AChar > &aaDim)
 
template<typename TDomain >
SmartPtr< IElemProlongation< TDomain > > GetStandardElementProlongation (const LFEID &lfeid)
 
template<typename TDomain >
SmartPtr< IElemRestriction< TDomain > > GetStandardElementRestriction (const LFEID &lfeid)
 
UG_API std::string GetTmpPath ()
 Returns a path to which an application may write temporary files. More...
 
size_t GetTotalMem (const Shiny::ProfileNode *p)
 
template<class TType >
size_t GetUniqueFVGeomID ()
 This method associates a unique unsigned integer value with each type. More...
 
template<class TType >
size_t GetUniqueTypeID ()
 This method associated a unique unsigned integer value with each type. More...
 
template<typename T >
const T & getVector (const T &t)
 
template<typename T >
const T & getVector (const AlphaVec_Expression< T > &t)
 
template<typename TDomain , typename TAlgebra >
const TAlgebra::vector_type & getVector (const GridFunction< TDomain, TAlgebra > &t)
 
VertexGetVertex (Vertex *v, size_t i)
 returns the i'th vertex of a vertex More...
 
VertexGetVertex (Edge *e, size_t i)
 returns the i'th vertex of an edge More...
 
VertexGetVertex (Face *f, size_t i)
 returns the i'th vertex of a face More...
 
VertexGetVertex (Volume *v, size_t i)
 returns the i'th vertex of a volume More...
 
int GetVertexIndex (EdgeVertices *e, Vertex *v)
 returns the index at which vertex v is found in the given edge More...
 
int GetVertexIndex (FaceVertices *f, Vertex *v)
 returns the index at which vertex v is found in the given face More...
 
int GetVertexIndex (VolumeVertices *vol, Vertex *v)
 returns the index at which vertex v is found in the given volume More...
 
template<typename matrix_t , typename vector_t >
void GivensMatVecMult (matrix_t &A, vector_t &v)
 Multiplication by the Givens rotation of the QR-Decomposition. More...
 
template<typename TDomain >
static SmartPtr< IRefinerGlobalDomainRefiner (TDomain *dom)
 Creates a global domain refiner. More...
 
template<typename T >
MathMatrix< 0, 0, T >::value_type GramDeterminant (const MathMatrix< 0, 0, T > &m)
 
template<size_t N, typename T >
MathMatrix< N, 0, T >::value_type GramDeterminant (const MathMatrix< N, 0, T > &m)
 
template<size_t M, typename T >
MathMatrix< 0, M, T >::value_type GramDeterminant (const MathMatrix< 0, M, T > &m)
 
std::string GridLevelAppendix (const GridLevel &gl, int minfill=2)
 returns appendix for a grid level More...
 
template<typename Matrix_type , typename Vector_type >
bool gs_step_LL (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a forward gauss-seidel-step, that is, solve on the lower left of A. More...
 
template<typename Matrix_type , typename Vector_type >
void gs_step_LL (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Gauss-Seidel-Iterations. More...
 
template<typename Matrix_type , typename Vector_type >
bool gs_step_UR (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a backward gauss-seidel-step, that is, solve on the upper right of A. More...
 
template<typename Matrix_type , typename Vector_type >
void gs_step_UR (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Performs a backward gauss-seidel-step, that is, solve on the upper right of A. Using gs_step_UR within a preconditioner-scheme leads to the fact that we get the correction by successive inserting the already computed values of c in c = N * d, with c being the correction and d being the defect. N denotes the matrix of the second normal-form of a linear iteration scheme. More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spExactGrad, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder, const char *subsets)
 compute H1 error of a function on the whole domain or on some subsets More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spExactGrad, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder)
 
template<typename TGridFunction >
number H1Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 computes the h1 error function between to function More...
 
template<typename TGridFunction >
number H1Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder)
 
template<typename TDomain >
static SmartPtr< IRefinerHangingNodeDomainRefiner (TDomain *dom)
 Creates an adaptive hanging node domain refiner. More...
 
template<typename TRefElem , int TWorldDim>
void HangingNormalOnSCVF (MathVector< TWorldDim > &outNormal, const MathVector< TWorldDim > *vCornerCoords)
 
template<>
UG_API size_t hash_key (const std::string &str)
 creates a hash key from a string value More...
 
size_t hash_key (Vertex *key)
 returns the hash-value of the vertex. More...
 
size_t hash_key (EdgeVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (const EdgeVertices *key)
 
size_t hash_key (Edge *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (EdgeDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
template<>
size_t hash_key (const string &key)
 
size_t hash_key (FaceVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (const FaceVertices *key)
 
size_t hash_key (Face *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (FaceDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (VolumeVertices *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (const VolumeVertices *key)
 
size_t hash_key (Volume *key)
 the hash-key is a function of vertex-hash-values. More...
 
size_t hash_key (VolumeDescriptor *key)
 the hash-key is a function of vertex-hash-values. More...
 
template<>
size_t hash_key< AlgebraID > (const AlgebraID &key)
 
template<>
size_t hash_key< GeomObjID > (const GeomObjID &key)
 generates a hash key for a GeomObjID. More...
 
static unsigned long HashKey (const EdgeVertices *key)
 sums the squared hash-values of associated vertices. More...
 
static unsigned long HashKey (const FaceVertices *key)
 sums the squared hash-values of associated vertices. More...
 
static unsigned long HashKey (const VolumeVertices *key)
 sums the squared hash-values of associated vertices. More...
 
bool HasMemTracking ()
 
std::string HistogrammString (std::vector< double > values)
 
template<class TDomain >
void IdentifySubsets (TDomain &dom, int sInd1, int sInd2)
 identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created. More...
 
template<class TDomain >
void IdentifySubsets (TDomain &dom, const char *sName1, const char *sName2)
 identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created. More...
 
bool ImportGridFromLGM (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *pSurfaceHandler)
 
bool ImportGridFromNG (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *pSubdomainHandler)
 
bool ImportGridFromTETGEN (Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute)
 
bool ImportGridFromTETGEN (Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, ISubsetHandler *psh, std::vector< AFloat > *pvNodeAttributes)
 
void InitLinearManifoldSubsetHandler (MultiGrid &mg, MGSubsetHandler &sh, MGSubsetHandler &linearManifoldSH, const char *linearManifoldSubsets)
 Procedure to initialize the linear boundary manifold subsets SubsetHandler with user-specified subsets. More...
 
bool InitPaths (const char *argv0)
 Initializes the pathes of ug::PathProvider. More...
 
void InitUGPlugin_ConvectionDiffusion (Registry *reg, string grp)
 
void InitUGPlugin_DocuGen (Registry *reg, string grp)
 
void InitUGPlugin_LuaShell (Registry *reg, string grp)
 
void InitUGPlugin_ProMesh (Registry *reg, string grp)
 
void InitUGPlugin_SmallStrainMechanics (Registry *reg, string grp)
 
void InitUGPlugin_TemplatePlugin (Registry *reg, string grp)
 
template<int refDim, int dim>
bool InnerDoFPositionElem (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
template<int dim>
bool InnerDoFPositionVertex (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vVertPos, const LFEID &lfeID)
 
void InsertCenterVertex (Grid &g, Volume *vol, Vertex *vrt, bool eraseOldVol)
 Refines the volume by connecting its sides with the new center. More...
 
void InsertCenterVertex (Grid &g, Face *f, Vertex *vrt, bool eraseOldFace)
 Refines the face by connecting its sides with the new center. More...
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int quadOrder, std::string quadType)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int order)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, number time)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *subsets)
 
template<typename TGridFunction >
number Integral (SmartPtr< UserData< number, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time, int quadOrder)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets, number time)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, number time)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct, const char *subsets)
 
template<typename TGridFunction >
number Integral (number val, SmartPtr< TGridFunction > spGridFct)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, int quadOrder)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number Integral (SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset, number time, int quadOrder)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset, number time)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, number time)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset, const char *InnerSubset)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifold (SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > > spData, SmartPtr< TGridFunction > spGridFct, const char *BndSubset)
 
template<int WorldDim, int dim, typename TConstIterator >
number IntegralNormalComponentOnManifoldGeneral (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, const ISubsetHandler *ish, IIntegrand< MathVector< WorldDim >, WorldDim > &integrand, const SubsetGroup &bndSSGrp, int quadOrder, Grid &grid)
 
template<typename TGridFunction , int dim>
number IntegralNormalComponentOnManifoldSubset (SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, int si, const SubsetGroup &bndSSGrp, int quadOrder)
 
template<typename TGridFunction >
number IntegralNormalComponentOnManifoldSubsets (SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, const char *BndSubsets, const char *InnerSubsets, int quadOrder)
 
template<int WorldDim, int dim, typename TConstIterator >
number IntegralNormalComponentOnManifoldUsingFV1Geom (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, const ISubsetHandler *ish, IIntegrand< MathVector< WorldDim >, WorldDim > &integrand, const SubsetGroup &bndSSGrp)
 
template<int WorldDim, int dim, typename TConstIterator >
number Integrate (TConstIterator iterBegin, TConstIterator iterEnd, typename domain_traits< WorldDim >::position_accessor_type &aaPos, IIntegrand< number, WorldDim > &integrand, int quadOrder, std::string quadType, Grid::AttachmentAccessor< typename domain_traits< dim >::grid_base_object, ANumber > *paaElemContribs=NULL)
 integrates on the whole domain More...
 
template<typename TGridFunction , int dim>
void IntegrateDiscFlux (std::vector< number > &vValue, const TGridFunction &rDefect, const FunctionGroup &fctGrp, int si)
 
template<typename TGridFunction >
number IntegrateDiscFlux (SmartPtr< IAssemble< typename TGridFunction::algebra_type > > spAssemble, SmartPtr< TGridFunction > spGridFct, const char *pCmps, const char *subsets)
 
template<typename TGridFunction >
number IntegrateNormalGradientOnManifold (TGridFunction &u, const char *cmp, const char *BndSubset, const char *InnerSubset=NULL)
 Integrates the Flux of a component over some boundary subsets. More...
 
template<typename TGridFunction , int dim>
number IntegrateSubset (SmartPtr< IIntegrand< number, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, int si, int quadOrder, std::string quadType)
 
template<typename TGridFunction >
number IntegrateSubsets (SmartPtr< IIntegrand< number, TGridFunction::dim > > spIntegrand, SmartPtr< TGridFunction > spGridFct, const char *subsets, int quadOrder, std::string quadType=std::string())
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void Interpolate (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void Interpolate (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 interpolates a function on a subset More...
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void InterpolateInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
void InterpolateInner (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TElem , typename TGridFunction >
void InterpolateOnElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TGridFunction >
void InterpolateOnElements (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TElem , typename TGridFunction >
void InterpolateOnElementsInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TGridFunction >
void InterpolateOnElementsInner (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TGridFunction >
void InterpolateOnVertices (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TVector >
void InterpolateValues (TVector &u, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<class TObjectCollection , class TAAPosVRT >
bool IntersectCloseEdges (Grid &grid, TObjectCollection &elems, TAAPosVRT &aaPos, number snapThreshold)
 
bool IntersectCoplanarTriangles (std::vector< vector2 > &edgesOut, const vector2 &p00, const vector2 &p01, const vector2 &p02, const vector2 &p10, const vector2 &p11, const vector2 &p12)
 Intersects Coplanar Triangles. More...
 
bool IntersectCoplanarTriangles (std::vector< vector3 > &edgesOut, const vector3 &p00, const vector3 &p01, const vector3 &p02, const vector3 &p10, const vector3 &p11, const vector3 &p12)
 Intersects Coplanar Triangles. More...
 
template<class TAAPos >
bool IntersectCoplanarTriangles (std::vector< typename TAAPos::ValueType > &edgesOut, FaceVertices *tri1, FaceVertices *tri2, TAAPos aaPos)
 Intersects Coplanar Triangles. More...
 
size_t IntersectPlaneWithTetrahedron (vector3 intsOut[4], const vector3 &planePoint, const vector3 &planeNormal, const vector3 t[4])
 Returns the number of intersections and the intersection points in intsOut. More...
 
template<class T >
void InvalidateSmallLenses (Field< T > &field, size_t thresholdCellCount, const T &noDataValue)
 invalidates cells that belong to a small lense More...
 
template<typename TMatrix , typename TInverseMatrixType , typename TVector >
void InverseFromInverseType (TMatrix &mat, TInverseMatrixType &inv, TVector &x, TVector &e)
 
template<typename TMatrix , typename TVector >
void InverseFromInverseType (TMatrix &mat, TMatrix &inv, TVector &x, TVector &e)
 
bool InverseMatMult (DenseVector< FixedArray1< double, 1 > > &dest, double beta1, const DenseMatrix< FixedArray2< double, 1, 1 > > &A1, const DenseVector< FixedArray1< double, 1 > > &w1)
 
bool InverseMatMult (number &dest, const double &beta, const number &mat, const number &vec)
 
template<typename TMat , typename TVec >
bool InverseMatMult (number &dest, const double &beta, const TMat &mat, const TVec &vec)
 you can implement this function with GetInverse and MatMult More...
 
template<typename T >
bool InverseMatMult (DenseVector< FixedArray1< double, 2 > > &dest, double beta, const DenseMatrix< FixedArray2< double, 2, 2 > > &mat, const DenseVector< FixedArray1< double, 2 > > &vec)
 
template<typename T >
bool InverseMatMult (DenseVector< FixedArray1< double, 3 > > &dest, double beta, const DenseMatrix< FixedArray2< double, 3, 3 > > &mat, const DenseVector< FixedArray1< double, 3 > > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult1 (DenseVector< vector_t > &dest, double beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult2 (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMult3 (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename vector_t , typename matrix_t >
bool InverseMatMultN (DenseVector< vector_t > &dest, double beta, const DenseMatrix< matrix_t > &mat, const DenseVector< vector_t > &vec)
 
template<typename T , size_t TUnknowns>
bool Invert (DenseMatrix< FixedArray2< T, TUnknowns, TUnknowns > > &mat)
 
bool Invert (DenseMatrix< FixedArray2< double, 1, 1 > > &mat)
 
bool Invert (DenseMatrix< FixedArray2< double, 2, 2 > > &mat)
 
template<typename T >
bool Invert (T &m)
 
bool Invert (number &m)
 
bool Invert (DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
template<typename T >
bool Invert (DenseMatrix< T > &mat)
 
template<typename T >
bool Invert1 (DenseMatrix< T > &mat)
 
template<typename T >
bool Invert2 (DenseMatrix< T > &mat)
 
bool Invert3 (DenseMatrix< FixedArray2< double, 3, 3 > > &mat)
 
bool Invert3 (DenseMatrix< VariableArray2< double > > &mat)
 
template<typename Matrix_type , typename Vector_type >
bool invert_L (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 
template<typename Matrix_type , typename Vector_type >
bool invert_U (const Matrix_type &A, Vector_type &x, const Vector_type &b, const number eps=1e-8)
 
template<typename T >
bool InvertNdyn (DenseMatrix< T > &mat)
 
template<class TFaceIterator >
void InvertOrientation (Grid &grid, TFaceIterator facesBegin, TFaceIterator facesEnd)
 inverts the orientation of all faces between facesBegin and facesEnd More...
 
template<class TFaceIterator >
UG_API void InvertOrientation (Grid &grid, TFaceIterator facesBegin, TFaceIterator facesEnd)
 inverts the orientation of all faces between facesBegin and facesEnd More...
 
template<class TSelector , class TIterator >
void InvertSelection (TSelector &sel, TIterator begin, TIterator end)
 Inverts the selection of the elements between begin and end. More...
 
template<class TSelector >
void InvertSelection (TSelector &sel)
 Inverts the selection. More...
 
template void InvertSelection< MGSelector > (MGSelector &)
 
template void InvertSelection< Selector > (Selector &)
 
template<std::size_t TDim>
void InvertTensor4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<typename matrix_t , typename vector_t >
void InvMatVecMult_byGivens (matrix_t &A, vector_t &v)
 Multiplication by the inverse using the Givens rotations. More...
 
bool IsBigEndian ()
 
bool IsBoundaryEdge (Grid &grid, Edge *e, Grid::face_traits::callback funcIsSurfFace)
 returns true if the edge is connected to exactly one surface face. More...
 
bool IsBoundaryEdge2D (Grid &grid, Edge *e)
 returns whether an edge lies on the boundary of a 2D grid. More...
 
bool IsBoundaryEdge3D (Grid &grid, Edge *e)
 returns whether an edge lies on the boundary of a 3D grid. More...
 
template<class TFace >
UG_API bool IsBoundaryFace3D (Grid &grid, TFace *f)
 A wrapper for IsVolumeBoundaryFace. More...
 
bool IsBoundaryVertex1D (Grid &grid, Vertex *v, Grid::edge_traits::callback cbConsiderEdge=ConsiderAll())
 returns whether a vertex lies on the boundary of a polygonal chain. More...
 
bool IsBoundaryVertex2D (Grid &grid, Vertex *v)
 returns whether a vertex lies on the boundary of a 2D grid. More...
 
bool IsBoundaryVertex3D (Grid &grid, Vertex *v)
 returns true if a vertex lies on the boundary of a 3D grid. More...
 
template<typename TSparseMatrix >
bool IsCloseToBoundary (const TSparseMatrix &A, size_t node, size_t distance)
 gets the neighborhood of a node in the connectivity graph of a SparseMatrix. More...
 
template<class TAAPosVRT >
bool IsDegenerated (Face *f, TAAPosVRT &aaPos, number threshold)
 returns true if the given face is degenerated. More...
 
template<class TAAPosVRT >
UG_API bool IsDegenerated (Face *f, TAAPosVRT &aaPos, number threshold=SMALL)
 returns true if the given face is degenerated. More...
 
template<typename TVector >
bool IsFinite (const ParallelVector< TVector > &v)
 
bool IsFiniteAndNotTooBig (double d)
 
template<std::size_t N, std::size_t M, typename T >
bool IsFiniteAndNotTooBig (const MathMatrix< N, M, T > &m)
 
template<typename TVector >
bool IsFiniteAndNotTooBig (const TVector &v, double tooBigValue=1e24)
 
template<std::size_t N, typename T >
bool IsFiniteAndNotTooBig (const MathVector< N, T > &m)
 
template<size_t TRank, size_t N, typename T >
bool IsFiniteAndNotTooBig (const MathTensor< TRank, N, T > &t)
 
template<typename TData , size_t N>
bool IsFiniteAndNotTooBig (const MathTensorX< TData, N > &t)
 
template<typename TVector >
bool IsFiniteAndNotTooBig (const ParallelVector< TVector > &v)
 
template<typename TData >
bool IsFiniteAndNotTooBig (const std::vector< TData > &t)
 
template<typename T >
bool IsFiniteAndNotTooBig (const DenseVector< T > &v)
 
template<typename T >
bool IsFiniteAndNotTooBig (const DenseMatrix< T > &m)
 
bool IsInInterface (IndexLayout::Interface &interface, size_t i)
 
bool IsLittleEndian ()
 
UG_API bool IsLonger (const std::string &a, const std::string &b)
 checks whether second string is longer than first string More...
 
bool IsLonger (const string &a, const string &b)
 
bool IsMemTrackerEnabled ()
 
bool IsRegularSurfaceVertex (Grid &grid, Vertex *v)
 returns true if the vertex lies inside a regular surface More...
 
bool IsShiftChar (char c)
 
int IsSliver (const vector3 &v0, const vector3 &v1, const vector3 &v2, const vector3 &v3, number thresholdRatio)
 
template<class TElem >
bool IsSubSurfaceElement (MultiGrid &mg, TElem *e, bool checkSides=false)
 returns true, if the element lies one level below the surface More...
 
bool IsValidRegistryIdentifier (const std::string &name)
 
template<typename T >
bool IsVectorFiniteAndNotTooBig (const T &t)
 
static bool IsVertical (const vector1 &, const vector1 &)
 
static bool IsVertical (const vector2 &from, const vector2 &to)
 
static bool IsVertical (const vector3 &from, const vector3 &to)
 
bool IsVolumeBoundaryFace (Grid &grid, Face *f)
 returns true if the given face is a boundary face. More...
 
bool IsVolumeBoundaryFace (Grid &grid, ConstrainedFace *f)
 returns true if the given face is a boundary face. More...
 
bool IsVolumeBoundaryFace (Grid &grid, ConstrainingFace *f)
 returns true if the given face is a boundary face. More...
 
template<class TIterDest , class TIterSrc >
TIterDest iterator_cast (const TIterSrc &iter)
 You should avoid casting whenever possible! More...
 
template<typename TStorage >
std::string JuliaString (const DenseMatrix< TStorage > &A, const char *name)
 
template<typename TGridFunction >
number L2Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder, const char *subsets)
 computes the l2 error function on the whole domain or on some subsets More...
 
template<typename TGridFunction >
number L2Error (SmartPtr< UserData< number, TGridFunction::dim > > spExactSol, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time, int quadOrder)
 
template<typename TGridFunction >
number L2Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder, const char *subsets)
 computes the l2 error function between to function More...
 
template<typename TGridFunction >
number L2Error (SmartPtr< TGridFunction > spGridFct1, const char *cmp1, SmartPtr< TGridFunction > spGridFct2, const char *cmp2, int quadOrder)
 
template<typename TGridFunction >
number L2Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder, const char *subsets)
 
template<typename TGridFunction >
number L2Norm (SmartPtr< TGridFunction > spGridFct, const char *cmp, int quadOrder)
 
size_t LagrangeNumDoFOnSub (const ReferenceObjectID elem, const ReferenceObjectID sub, const size_t p)
 returns number of DoFs Subelement for an element type and order p More...
 
size_t LagrangeNumDoFs (const ReferenceObjectID elem, const size_t p)
 returns number of DoFs on element type for order p More...
 
template<class TIterator , class AAPosVRT >
void LaplacianSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations)
 
size_t LevenshteinDistance (const string &s1, const string &s2)
 
UG_API size_t LevenshteinDistance (const std::string &s1, const std::string &s2)
 Calculate Levenshtein Distance of to strings. More...
 
DebugID LIB_ALG_AMG ("LIB_ALG_AMG")
 
DebugID LIB_ALG_LINEAR_OPERATOR ("LIB_ALG_LINEAR_OPERATOR")
 
DebugID LIB_ALG_LINEAR_SOLVER ("LIB_ALG_LINEAR_SOLVER")
 
DebugID LIB_ALG_MATRIX ("LIB_ALG_MATRIX")
 
DebugID LIB_ALG_VECTOR ("LIB_ALG_VECTOR")
 
DebugID LIB_DISC ("LIB_DISC")
 
DebugID LIB_DISC_ASSEMBLE ("LIB_DISC_ASSEMBLE")
 
DebugID LIB_DISC_D3F ("LIB_DISC_D3F")
 
DebugID LIB_DISC_DISCRETE_FUNCTION ("LIB_DISC_DISCRETE_FUNCTION")
 
DebugID LIB_DISC_LINKER ("LIB_DISC_LINKER")
 
DebugID LIB_DISC_MULTIGRID ("LIB_DISC_MULTIGRID")
 
DebugID LIB_DISC_NEWTON ("LIB_DISC_NEWTON")
 
DebugID LIB_DISC_OPERATOR_INVERSE ("LIB_DISC_OPERATOR_INVERSE")
 
DebugID LIB_DISC_OUTPUT ("LIB_DISC_OUTPUT")
 
DebugID LIB_DISC_TRANSFER ("LIB_DISC_TRANSFER")
 
DebugID LIB_GRID ("LIB_GRID")
 
DebugID LIB_GRID_REFINER ("LIB_GRID_REFINER")
 
DebugID LIB_PCL ("LIB_PCL")
 
template<class TFace >
UG_API bool LiesOnBoundary (Grid &grid, TFace *f)
 A wrapper for IsVolumeBoundaryFace. More...
 
bool LiesOnBoundary (Grid &grid, Edge *e)
 returns true, if the edge lies on a 2d or 3d boundary More...
 
bool LiesOnBoundary (Grid &grid, Vertex *v)
 returns true, if the vertex lies on a 1d, 2d or 3d boundary More...
 
template<class vector_t >
bool LineBoxIntersection (const vector_t &v1, const vector_t &v2, const vector_t &boxMin, const vector_t &boxMax)
 checks whether the given line-segment (v1, v2) intersect the given box. More...
 
template<class vector_t >
bool LineLineIntersection2d (vector_t &vOut, number &t0Out, number &t1Out, const vector_t &from0, const vector_t &to0, const vector_t &from1, const vector_t &to1, const number threshold=0)
 calculates the intersection of a two lines in 2d More...
 
bool LineLineIntersection3d (vector3 &aOut, vector3 &bOut, const vector3 &a1, const vector3 &a2, const vector3 &b1, const vector3 &b2)
 intersects two 3d line segments More...
 
template<class vector_t >
bool LineLineProjection (number &t1Out, number &t2Out, const vector_t &a1, const vector_t &a2, const vector_t &b1, const vector_t &b2)
 calculates the closest point between the rays through the given lines. More...
 
template<class vector_t >
int LineSphereIntersection (number &s1Out, number &s2Out, const vector_t &v1, const vector_t &v2, const vector_t &center, number radius)
 
template<typename TDomain >
static void LoadAndRefineDomain (TDomain &domain, const char *filename, int numRefs)
 
template void LoadDomain< Domain1d > (Domain1d &domain, const char *filename)
 
template void LoadDomain< Domain1d > (Domain1d &domain, const char *filename, int procId)
 
template void LoadDomain< Domain2d > (Domain2d &domain, const char *filename)
 
template void LoadDomain< Domain2d > (Domain2d &domain, const char *filename, int procId)
 
template void LoadDomain< Domain3d > (Domain3d &domain, const char *filename)
 
template void LoadDomain< Domain3d > (Domain3d &domain, const char *filename, int procId)
 
template<class TAPos >
static bool LoadGrid (Grid &grid, ISubsetHandler *psh, const char *filename, TAPos &aPos, int procId)
 This method calls specific load routines or delegates loading to LoadGrid3d. More...
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition1 &aPos)
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition2 &aPos)
 
static bool LoadGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition3 &aPos)
 
static bool LoadGrid3d_IMPL (Grid &grid, ISubsetHandler *pSH, const char *filename, AVector3 &aPos)
 
bool LoadGridFromART (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 loads a grid from art More...
 
bool LoadGridFromASC (Grid &grid, const char *filename, AVector3 &aPos)
 
bool LoadGridFromDUMP (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 loads dump-files. More...
 
bool LoadGridFromELE (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos)
 
template<class TAPos >
bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos, int procId)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
bool LoadGridFromFile (Grid &grid, const char *filename, TAPos &aPos, int procId)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector1 &, int)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector2 &, int)
 
template bool LoadGridFromFile (Grid &, ISubsetHandler &, const char *, AVector3 &, int)
 
template bool LoadGridFromFile (Grid &, const char *, AVector1 &, int)
 
template bool LoadGridFromFile (Grid &, const char *, AVector2 &, int)
 
template bool LoadGridFromFile (Grid &, const char *, AVector3 &, int)
 
bool LoadGridFromLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, APosition aPos)
 
bool LoadGridFromMSH (Grid &grid, const char *filename, ISubsetHandler *psh=NULL, AVector3 &aPos=aPosition)
 loads a grid from the GMSH ascii .msh format More...
 
bool LoadGridFromOBJ (Grid &grid, const char *filename, AVector3 &aPos, AVector2 *paTexCoord, ISubsetHandler *pSubsetHandler, std::vector< OBJMaterial > *pvMaterials)
 Loads a file from a wavefront '.obj' file. Fills optional subset-infos. More...
 
bool LoadGridFromSMESH (Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *psh)
 
bool LoadGridFromSTL (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition, AVector3 &aNormFACE=aNormal)
 loads stl-ascii-files. More...
 
bool LoadGridFromSTL_ASCII (Grid &grid, const char *filename, ISubsetHandler *pSH, AVector3 &aPos, AVector3 &aNormFACE)
 
bool LoadGridFromSTL_BINARY (Grid &grid, const char *filename, ISubsetHandler *pSH, AVector3 &aPos, AVector3 &aNormFACE)
 
bool LoadGridFromTXT (Grid &grid, const char *filename, AVector3 &aPos=aPosition)
 loads a grid from txt More...
 
template<class TAPosition >
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename)
 Reads a grid to an ugx file. More...
 
template<class TAPosition >
bool LoadGridFromUGX (Grid &grid, ISubsetHandler &sh, const char *filename, APosition &aPos)
 Reads a grid to an ugx file. internally uses GridReaderUGX. More...
 
template<class TAPosition >
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 
template<class TAPosition >
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename, APosition &aPos)
 Reads a grid to an vtu (vtk) file. internally uses GridReaderVTK. More...
 
bool LoadGridFromVTU (Grid &grid, ISubsetHandler &sh, const char *filename)
 Reads a grid to a vtu (vtk unstructured mesh) file. More...
 
void LoadHeightfieldFromASC (Heightfield &hfield, const char *filename)
 
bool LoadMarkerPointsFromFile (MarkerPointManager &manager, const char *filename)
 Loads marker points from a file. More...
 
UG_API bool LoadPlugins (const char *pluginPath, std::string parentGroup, bridge::Registry &reg, bool bPrefixGroup=false)
 Loads all plugins in the given path. More...
 
bool LoadPlugins (const char *pluginPath, string parentGroup, bridge::Registry &reg, bool bPrefixGroup)
 
template<typename TGridFunction >
void LoadVector (TGridFunction &u, const char *filename)
 
void LogIndexLayout (IndexLayout &layout, int depth=0)
 Logs the internals of an index layout. More...
 
void LogIndexLayoutOnAllProcs (IndexLayout &layout, int depth=0)
 logs index infos for all procs successively More...
 
template<typename matrix_t >
bool LUDecomp (DenseMatrix< matrix_t > &A, size_t *pInterchange)
 
template<typename matrix_t >
bool LUDecompIKJ (DenseMatrix< matrix_t > &A, size_t *pInterchange)
 
DebugID MAIN ("MAIN")
 
template<typename matrix_type >
bool MakeConsistent (const ParallelMatrix< matrix_type > &_mat, ParallelMatrix< matrix_type > &newMat)
 
template<class TAAPos >
bool MakeDelaunay (DelaunayInfo< TAAPos > &info)
 
template bool MakeDelaunay (DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &)
 
template<class TAPos >
SPIGeometry3d MakeGeometry3d (Grid &grid, TAPos aPos)
 Utility method to construct an IGeometry3d for a given grid and position attachment. More...
 
GeomObjID MakeGeomObjID (int procRank, size_t localGeomObjID)
 Can be used to construct a GeomObjID from a proc-rank and a local id. More...
 
template<class TElem >
void MakeSubsetsConsecutive (SubsetHandler &sh)
 moves subsets so that no empty subset of type TElem is between filled ones. More...
 
string MakeTmpFile (string filename, const string &extension, bool &bSuccess)
 !!! Serial i/o version !!! More...
 
UG_API std::string MakeTmpFile (std::string filename, const std::string &extension, bool &bSuccess)
 
static SmartPtr< vector1MakeVec (number x)
 
static SmartPtr< vector2MakeVec (number x, number y)
 
static SmartPtr< vector3MakeVec (number x, number y, number z)
 
static SmartPtr< vector4MakeVec (number x, number y, number z, number w)
 
void MapLagrangeMultiIndexQuad (std::vector< size_t > &vOrientOffset, const int id0, bool sameOrientation, const size_t pOuter)
 
void MapLagrangeMultiIndexTriangle (std::vector< size_t > &vOrientOffset, const int id0, bool sameOrientation, const size_t pOuter)
 
template<typename TStorage >
void MaplePrint (const DenseMatrix< TStorage > &A, const char *name)
 
template<class TElem >
static void mark_if_periodic (IRefiner &ref, TElem *e)
 
template<typename TElem >
static void MarkAllElemsForAssemblyButHSlaves (Grid &grid, BoolMarker &bMarker)
 
template<typename TAlgebra >
static void MarkAllElemsForAssemblyButHSlaves (SmartPtr< IAssemble< TAlgebra > > ass, Grid &grid)
 
template<class T >
void MarkAllFromInterface (std::vector< T > &mark, const IndexLayout::Interface &interface, const T &default_val)
 
void MarkAllFromInterface (std::vector< bool > &mark, const IndexLayout::Interface &interface)
 
template<class T >
void MarkAllFromLayout (std::vector< T > &mark, const IndexLayout &layout, const T &default_val)
 
void MarkAllFromLayout (std::vector< bool > &mark, const IndexLayout &layout)
 
template<class TDomain >
void MarkAnisotropic_LongEdges (TDomain &dom, IRefiner &refiner, number minLen)
 Marks all elements for anisotropic refienment and also marks all edges > minLen. More...
 
template<class TVertexIterator , class TAPosition >
UG_API void MarkCorners (Grid &grid, ISubsetHandler &sh, TVertexIterator vrtsBegin, TVertexIterator vrtsEnd, Grid::edge_traits::callback cbPathEdge, int subsetIndex, number angle, TAPosition &aPos)
 
template<class TVertexIterator , class TAPosition >
void MarkCorners (Grid &grid, ISubsetHandler &sh, TVertexIterator vrtsBegin, TVertexIterator vrtsEnd, Grid::edge_traits::callback cbPathEdge, int subsetIndex, number angle, TAPosition &aPos)
 
template<class TEdgeIterator >
void MarkCreaseEdges (Grid &grid, ISubsetHandler &sh, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, int subsetIndex, number angle, APosition &aPos, ANormal *paFaceNormal)
 
template<class TEdgeIterator >
UG_API void MarkCreaseEdges (Grid &grid, ISubsetHandler &sh, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, int subsetIndex, number angle, APosition &aPos=aPosition, ANormal *paFaceNormal=NULL)
 
template<typename TElem >
void MarkElements (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 marks elements according to an attached error value field More...
 
template<typename TElem >
void MarkElementsAbsolute (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number refTol, number coarsenTol, int minLevel, int maxLevel, bool refTopLvlOnly=false)
 marks elements according to an attached error value field More...
 
template<typename TElem >
void MarkElementsForCoarsening (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number TOL, number safety)
 marks elements for coarsening according to an attached error value field More...
 
template<typename TElem >
void MarkElementsForRefinement (MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &aaError, IRefiner &refiner, ConstSmartPtr< DoFDistribution > dd, number tol, int maxLevel)
 marks elements according for refinement to an attached error value field More...
 
void MarkFixedCreaseVertices (Grid &grid, SubsetHandler &sh, int creaseSI, int fixedSI)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_AbsoluteGradientIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number refTol, number coarsenTol, int minLvl, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_AbsoluteGradientJumpIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number refTol, number coarsenTol, int minLvl, int maxLevel)
 
template<class TDomain , class TElem >
void MarkForAdaption_ElementsContainingPoint (TDomain &dom, IRefiner &refiner, number x, number y, number z, std::string markType)
 
template<class TDomain >
void MarkForAdaption_ElementsTouchingSubset (TDomain &dom, IRefiner &refiner, ISubsetHandler &sh, int subsetIndex, std::string markType)
 
template<class TDomain >
void MarkForAdaption_ElementsTouchingSubsets (TDomain &dom, IRefiner &refiner, const char *subsets, std::string markType)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientAverage (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, const char *cmp, number refFrac, int minLvl, int maxLvl)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientJump (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, const char *cmp, number refFrac, int minLvl, int maxLvl, std::string jumpType)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_GradientJumpIndicator (IRefiner &refiner, GridFunction< TDomain, TAlgebra > &u, const char *fctName, number TOL, number refineFrac, number coarseFrac, int maxLevel)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_L2ErrorExact (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > spExactSol, const char *cmp, number minL2Error, number maxL2Error, number refFrac, int minLvl, int maxLvl, number time, int quadOrder)
 
template<typename TDomain , typename TAlgebra >
number MarkForAdaption_ResidualErrorP1Absolute (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > f, const char *cmp, number time, number refTol, number coarsenTol, int maxLvl, int quadOrder, std::string quadType, bool refTopLvlOnly=false)
 
template<typename TDomain , typename TAlgebra >
void MarkForAdaption_ResidualErrorP1Relative (IRefiner &refiner, SmartPtr< GridFunction< TDomain, TAlgebra > > u, SmartPtr< UserData< number, TDomain::dim > > f, const char *cmp, number time, number refFrac, int minLvl, int maxLvl, int quadOrder, std::string quadType)
 
template<class TDomain >
void MarkForAdaption_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max, std::string markType)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<class TDomain >
void MarkForAdaption_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius, std::string markType)
 Marks all vertices in the given d-dimensional sphere. More...
 
template<class TRef , class TIter , class TAAPos >
void MarkForAnisotropicRefinement (Grid &grid, TRef &ref, number minEdgeRatio, TIter elemsBegin, TIter elemsEnd, TAAPos aaPos)
 
template<class TDomain >
void MarkForCoarsen_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, const char *luaCallbackName)
 
static void MarkForRefinement_All (SmartPtr< IRefiner > ref)
 Marks all elements from refinement. More...
 
template<class TDomain >
void MarkForRefinement_AnisotropicDirection (TDomain &dom, IRefiner &refiner, MathVector< TDomain::dim > &dir, number minEdgeRatio)
 
template<class TDomain >
void MarkForRefinement_AnisotropicElements (TDomain &dom, IRefiner &refiner, number minEdgeRatio)
 
template<class TDomain >
void MarkForRefinement_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const char *luaCallbackName)
 
template<class TDomain , class TElem >
void MarkForRefinement_ElementsInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 Marks all elements which lie completely in the given d-dimensional sphere. More...
 
template<class TDomain , class TSubsetHandler , class TElem >
void MarkForRefinement_ElementsInSubset (TDomain &dom, IRefiner &refiner, TSubsetHandler &sh, int subsetIndex)
 
template<class TDomain >
void MarkForRefinement_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max)
 
template<class TDomain >
void MarkForRefinement_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 
template<typename TSparseMatrix >
void MarkNeighbors (const TSparseMatrix &A, size_t node, size_t depth, std::vector< bool > &bVisited)
 
void MarkNeighborsForAnisotropicRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
void MarkNeighborsForFullRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
void mask ()
 
template<typename matrix_t >
void MatAdd (matrix_t &mOut, const matrix_t &m1, const matrix_t &m2)
 adds two matrices and stores the result in a third one More...
 
template<typename X , typename Y , typename M >
void MatAdd (MatrixOperator< M, X, Y > &res, number alpha1, MatrixOperator< M, X, Y > &A1, number alpha2, MatrixOperator< M, X, Y > &A2)
 
template<typename matrix_type >
void MatAdd (matrix_type &M, number &alpha1, const matrix_type &A, number &alpha2, const matrix_type &B)
 Calculates M = A + B. More...
 
template<typename matrix_t >
void MatAdd (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Add a scalar to a matrix (componentwise) More...
 
template<typename TAlgebra >
void MatAdditiveToConsistentOnDiag (typename TAlgebra::matrix_type *pMat, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to consistent on diagonal of a matrix More...
 
template<typename matrix_t >
matrix_t::value_type MatContraction (const matrix_t &m1, const matrix_t &m2)
 
template<typename matrix_t >
matrix_t::value_type MatDeviatorTrace (const matrix_t &m, matrix_t &dev)
 
double matDiagMax (const double d)
 
template<typename T1 >
double matDiagMax (const DenseMatrix< T1 > &mat)
 
template<typename matrix_t >
void MatDiagSet (matrix_t &mInOut, typename matrix_t::value_type s)
 Set diagonal entries of a matrix to a scalar (other entries are not changed) More...
 
template<typename matrix_t >
void MatDivide (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Devide a matrix by a scalar (componentwise) More...
 
template<typename TMatrix , typename TVector >
void MatExtractDiagOnLayout (TVector *pDiagVector, const TMatrix *pMatrix, const IndexLayout &Layout)
 extracts diagonal of a matrix for interface indices More...
 
template<typename matrix_t >
matrix_t::value_type MatFrobeniusNorm (matrix_t &m)
 
template<typename matrix_t >
matrix_t::value_type MatFrobeniusNormSq (matrix_t &m)
 
template<typename matrix_t , typename vector_t >
void MatHouseholder (matrix_t &mOut, const vector_t &orthoVec)
 
template<typename X , typename Y , typename M >
void MatIdentity (MatrixOperator< M, X, Y > &opOut)
 
template<typename matrix_t >
void MatIdentity (matrix_t &mOut)
 Fills the matrix with the identity matrix. More...
 
template<typename matrix_t >
matrix_t::value_type MatInftyNorm (matrix_t &m)
 
template<typename TStorage >
std::string MatlabString (const DenseMatrix< TStorage > &A, const char *name)
 
template<typename matrix_t >
matrix_t::value_type MatMaxNorm (matrix_t &m)
 
template<typename vector_t , typename matrix_t >
void MatMult (DenseVector< vector_t > &dest, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = beta1 * A1 * w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMult (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = beta1 * A1; More...
 
template<typename vector_t , typename matrix_t >
void MatMult (DenseVector< vector_t > &dest, const number &beta1, const DenseMatrixInverse< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = beta1 * A1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &alpha2, const vector_t &v2, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + alpha2*v2 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = alpha1*v1 + beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename vector_t , typename matrix_t >
void MatMultAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrixInverse< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &alpha1, const vector_t &v1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &alpha1, const vector_t &v1, const number &alpha2, const vector_t &v2)
 calculates dest = alpha1*v1 + beta1 * A1 *w1 + alpha2*v2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultAddDirect (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1, const number &beta2, const matrix_t &A2, const vector_t &w2, const number &alpha1, const vector_t &v1)
 calculates dest = beta1 * A1 *w1 + beta2 * A2*w2 + alpha1*v1; More...
 
template<typename matrix_type , typename vector_type >
bool MatMultAddDirect (ParallelVector< vector_type > &dest, const number &alpha1, const ParallelVector< vector_type > &v1, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename matrix_type , typename vector_type >
bool MatMultAddDirect (ParallelVector< vector_type > &dest, const number &alpha1, const ParallelVector< vector_type > &v1, const number &alpha2, const ParallelVector< vector_type > &v2, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename matrix_type , typename vector_type >
bool MatMultDirect (ParallelVector< vector_type > &dest, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiply (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< L, M, T > &m2)
 multiply two matrices and stores the result in a third one More...
 
template<size_t N, size_t M, size_t L, size_t P, typename T >
void MatMultiply (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< L, P, T > &m2, const MathMatrix< P, M, T > &m3)
 multiply three matrices and stores the result in a fourth one More...
 
template<typename matrix_t >
void MatMultiply (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Multiply a matrix by a scalar (componentwise) More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMBMT (MathMatrix< N, N, T > &mOut, const MathMatrix< N, M, T > &m1, const MathMatrix< M, M, T > &m2)
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyMBT (MathMatrix< N, M, T > &mOut, const MathMatrix< N, L, T > &m1, const MathMatrix< M, L, T > &m2)
 multiply a matrix with the transposed of a second one and stores the result in mOut More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMMT (MathMatrix< M, M, T > &mOut, const MathMatrix< M, N, T > &m)
 multiply a matrix with its transposed and stores the result in a second one More...
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyMTB (MathMatrix< N, M, T > &mOut, const MathMatrix< L, N, T > &m1, const MathMatrix< L, M, T > &m2)
 multiply the transposed of a matrix with a matrix and stores the result in mOut More...
 
template<size_t N, size_t M, typename T >
void MatMultiplyMTBM (MathMatrix< N, N, T > &mOut, const MathMatrix< M, N, T > &m1, const MathMatrix< M, M, T > &m2)
 
template<size_t N, size_t M, typename T >
void MatMultiplyMTM (MathMatrix< N, N, T > &mOut, const MathMatrix< M, N, T > &m)
 multiply a transposed matrix with itself and stores the result in a second one More...
 
template<size_t N, size_t M, size_t L, typename T >
void MatMultiplyTransposed (MathMatrix< N, M, T > &mOut, const MathMatrix< L, N, T > &m1, const MathMatrix< M, L, T > &m2)
 multiply two transposed matrices and stores the result in a third one More...
 
template<typename vector_t , typename matrix_t >
bool MatMultTransposed (vector_t &dest, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (DenseVector< vector_t > &dest, const number &alpha1, const DenseVector< vector_t > &v1, const number &beta1, const DenseMatrix< matrix_t > &A1, const DenseVector< vector_t > &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
bool MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const matrix_t &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1 *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const MapSparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const SparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename vector_t , typename matrix_t >
void MatMultTransposedAdd (vector_t &dest, const number &alpha1, const vector_t &v1, const number &beta1, const GPUSparseMatrix< matrix_t > &A1, const vector_t &w1)
 calculates dest = alpha1*v1 + beta1 * A1^T *w1; More...
 
template<typename matrix_type , typename vector_type >
void MatMultTransposedDirect (ParallelVector< vector_type > &dest, const number &beta1, const ParallelMatrix< matrix_type > &A1, const ParallelVector< vector_type > &w1)
 
template<typename matrix_t >
matrix_t::value_type MatOneNorm (matrix_t &m)
 
template<typename TStorage >
DenseMatrix< TStorage > MatrixTranspose (const DenseMatrix< TStorage > &A)
 
double MatrixTranspose (const double &b)
 
template<typename matrix_t >
void MatRotationX (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the x-axis in 3 dimensions. More...
 
template<typename matrix_t >
void MatRotationY (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the y-axis in 3 dimensions. More...
 
template<typename matrix_t >
void MatRotationYawPitchRoll (matrix_t &mOut, typename matrix_t::value_type yaw, typename matrix_t::value_type pitch, typename matrix_t::value_type roll)
 Creates a rotation matrix given yaw, pitch and roll in radiants. More...
 
template<typename matrix_t >
void MatRotationZ (matrix_t &mOut, typename matrix_t::value_type rads)
 Fills the matrix with a matrix that rotates around the y-axis in 2 or 3 dimensions. More...
 
template<typename X , typename Y , typename M >
void MatScale (MatrixOperator< M, X, Y > &A, number alpha)
 
template<typename matrix_t >
void MatScale (matrix_t &mOut, typename matrix_t::value_type s, const matrix_t &m)
 scales a matrix_t More...
 
template<typename matrix_t >
void MatScaleAppend (matrix_t &mOut, typename matrix_t::value_type s, const matrix_t &m)
 scales a matrix_t and adds to result to a second matrix More...
 
template<typename matrix_t >
void MatSet (matrix_t &mInOut, typename matrix_t::value_type s)
 Set each matrix entry to a scalar (componentwise) More...
 
template<typename matrix_t >
void MatSubtract (matrix_t &mOut, const matrix_t &m1, const matrix_t &m2)
 subtracts m2 from m1 and stores the result in a mOut More...
 
template<typename matrix_t >
void MatSubtract (matrix_t &mOut, const matrix_t &m, typename matrix_t::value_type s)
 Subtract a scalar from a matrix (componentwise) More...
 
void matSum (double &erg, double alpha, double vec)
 
template<typename T1 , typename T2 >
void matSum (T1 &erg, double alpha, T2 &mat)
 
template<typename T1 , typename T2 >
T1 matSum (double alpha, T2 &mat)
 
template<std::size_t TDim, std::size_t TDimSQ>
void MatToTens4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4, const DenseMatrixInverse< FixedArray2< number, TDimSQ, TDimSQ > > &mat)
 
double matTrace (const double d)
 
template<typename T1 >
double matTrace (const DenseMatrix< T1 > &mat)
 
template<typename X , typename Y , typename M >
void MatTranspose (MatrixOperator< M, X, Y > &AT, MatrixOperator< M, X, Y > &A)
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecMult (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecMultAppend (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication adding to a second vector. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void MatVecScaleMultAppend (vector_t_out &vOut, typename vector_t_out::value_type s, const matrix_t &m, const vector_t_in &v)
 Matrix - Vector Multiplication added scaled to a second vector. More...
 
template<typename TMatrix , typename TVector >
void MatWriteDiagOnLayout (TMatrix *pMatrix, const TVector *pDiagVector, const IndexLayout &Layout)
 writes diagonal of a matrix for interface indices More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type MaxAbsEigenvalue (const MathMatrix< M, N, T > &m)
 Computes maximum eigenvalue of a (symmetric) matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type MaxAbsEigenvalue (const MathMatrix< 1, 1, T > &m)
 
template<typename T >
MathMatrix< 2, 2, T >::value_type MaxAbsEigenvalue (const MathMatrix< 2, 2, T > &m)
 
template<typename TDomain >
number MaxElementDiameter (TDomain &domain, int level)
 returns the maximal diameter of all elements between iterBegin and iterEnd. More...
 
template<class TAAPos , class TIterator >
number MaxElementDiameter (Grid &grid, TAAPos &aaPos, TIterator iterBegin, TIterator iterEnd)
 returns the maximal diameter of all elements between iterBegin and iterEnd. More...
 
template number MaxElementDiameter< Domain1d > (Domain1d &domain, int level)
 
template number MaxElementDiameter< Domain2d > (Domain2d &domain, int level)
 
template number MaxElementDiameter< Domain3d > (Domain3d &domain, int level)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 computes maximum error of a grid function on a subset More...
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number MaxError (SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets, number time)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, number time)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp, const char *subsets)
 
template<typename TGridFunction >
number MaxError (number val, SmartPtr< TGridFunction > spGridFct, const char *cmp)
 
template<typename TElem , typename TGridFunction >
void MaxErrorOnElements (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, int si, number time)
 
template<typename TGridFunction >
void MaxErrorOnElements (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename TGridFunction >
void MaxErrorOnVertices (number &globalMaxError, SmartPtr< UserData< number, TGridFunction::dim > > spInterpolFunction, SmartPtr< TGridFunction > spGridFct, size_t fct, number time, const SubsetGroup &ssGrp)
 
template<typename T >
void MemSwap (T &a, T &b)
 
void MergeGlobalLayout (GlobalLayout &globalLayout, const std::map< int, int > &merge)
 
template<typename TLayout >
void MergeInterfaces (TLayout &layout, const std::vector< int > pidSources, int pidAppendTo)
 
template<typename TLayout >
void MergeInterfaces (TLayout &layout, const std::map< int, int > merge)
 
template<class TVrtIterator >
VertexMergeMultipleVertices (Grid &grid, TVrtIterator vrtsBegin, TVrtIterator vrtsEnd)
 Merges all vertices between the given iterators into a single vertex. More...
 
template<class TVrtIterator >
UG_API VertexMergeMultipleVertices (Grid &grid, TVrtIterator vrtsBegin, TVrtIterator vrtsEnd)
 Merges all vertices between the given iterators into a single vertex. More...
 
void MergeVertices (Grid &grid, Vertex *v1, Vertex *v2)
 merges two vertices and restructures the adjacent elements. More...
 
void MeshLayerBoundaries (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler *pSH)
 
void MeshLayers (Grid &grid, const RasterLayers &layers, Grid::VertexAttachmentAccessor< AVector3 > aaPos, ISubsetHandler *pSH)
 
template<typename TElem >
bool MightContainGhosts (const GridLayoutMap &layoutMap, int lvl)
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type MinAbsEigenvalue (const MathMatrix< M, N, T > &m)
 Computes minimum eigenvalue of a (symmetric) matrix. More...
 
template<typename matrix_t >
matrix_t::value_type MinAbsEigenvalue (matrix_t &m)
 
template<class EdgeIterator , class TAAPos >
void MinimizeEdgeLength_SwapsOnly (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, TAAPos &aaPos)
 Transforms the given edge-set so that the sum of the length the edges is minimized. More...
 
template<class EdgeIterator , class TAAPos >
*UG_API void MinimizeEdgeLength_SwapsOnly (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, TAAPos &aaPos)
 Transforms the given edge-set so that the sum of the length the edges is minimized. More...
 
template<typename TDomain >
static void MinimizeMemoryFootprint (TDomain &dom)
 
template<class TIterator , class TAAPos >
void MoveVertices (TIterator vrtsBegin, TIterator vrtsEnd, TAAPos aaPos, const typename TAAPos::ValueType &offset)
 moves vertices by the specified offset More...
 
template<class TVrtIter , class TAAPos >
void MultiEdgeSplit (Grid &grid, Edge *edge, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos aaPos)
 Inserts the specified vertices on the given edge. More...
 
template<typename matrix_type , typename vector_type , typename densematrix_type >
void MultiEnergyProd (matrix_type &A, SmartPtrVector< vector_type > &px, DenseMatrix< densematrix_type > &rA, size_t n)
 
template<typename vector_type , typename densematrix_type >
void MultiScalProd (vector_type &px, DenseMatrix< densematrix_type > &rA, size_t n)
 
template<typename T >
T * MyCudaAlloc (size_t N)
 
template<class TElem >
static bool NbrIsInSubset (ISubsetHandler &sh, typename Grid::traits< TElem >::secure_container &nbrs, int si)
 
template<typename TStorage >
std::string NonzeroString (const DenseMatrix< TStorage > &A, const char *brackets, const char *seperator, int base, const char *name)
 
static bool NotVertical (const vector1 &, const vector1 &)
 
static bool NotVertical (const vector2 &from, const vector2 &to)
 
static bool NotVertical (const vector3 &from, const vector3 &to)
 
int NumAssociatedEdges (Grid &grid, Vertex *v)
 returns the number of associated edges of the given vertex More...
 
int NumAssociatedFaces (Grid &grid, Vertex *v)
 returns the number of associated faces of the given vertex More...
 
int NumAssociatedFaces (Grid &grid, Edge *e)
 returns the number of associated faces of the given edge More...
 
int NumberOfDigits (int n)
 returns the number of digits of an integer (expressed with base 10) More...
 
static size_t NumIndices (const IndexLayout &Layout)
 
template<class TElemPtr1 , class TElemPtr2 >
UG_API size_t NumSharedVertices (Grid &grid, TElemPtr1 elem1, TElemPtr2 elem2)
 returns the number of vertices that are shared by two objects More...
 
size_t NumSharedVertices (IVertexGroup *vrts0, IVertexGroup *vrts1)
 Returns the number of shared vertices between vrts0 and vrts1. More...
 
template<class TElemPtr1 , class TElemPtr2 >
size_t NumSharedVertices (Grid &grid, TElemPtr1 elem1, TElemPtr2 elem2)
 returns the number of vertices that are shared by two objects More...
 
template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ObtainSimpleGrid (SimpleGrid &sgOut, Grid &grid, Vertex *vrt1, Vertex *vrt2, size_t size, TPosAcc &aaPos, TNormAcc &aaNorm, TIntAcc &aaInt)
 returns a neighbourhood of the edge defined by vrt1 and vrt2 in a SimpleGrid. More...
 
template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ObtainSimpleGrid_CollapseEdge (SimpleGrid &sgOut, Grid &grid, Edge *e, size_t size, TPosAcc &aaPos, TNormAcc &aaNorm, TIntAcc &aaInt)
 returns a neighbourhood of the edge e after e has been collapsed. More...
 
void OctReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vCornerCoord2, std::vector< number > vCornerCoord3, std::vector< number > vCornerCoord4, std::vector< number > vCornerCoord5, std::vector< number > vGlobPos)
 
const char * OnOffString (bool b)
 
DynLibHandle OpenLibrary (const char *fileName)
 Loads a library and returns a handle. More...
 
template<std::size_t N, typename T >
bool operator!= (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
ParallelStorageType operator& (const ParallelStorageType &a, const ParallelStorageType &b)
 
template<typename T >
TE_VecScale< typename T::vector_type > operator* (double alpha, const TE_AlphaVec< T > &r)
 
template<typename T >
TE_AlphaVec< typename T::vector_type > operator* (const TE_AlphaVec< T > &l, double alpha)
 
template<typename T >
TE_VecAdd2< T > operator* (const TE_VecAdd2< T > &t, double alpha)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename T >
TE_VecAdd2< T > operator* (double alpha, const TE_VecAdd2< T > &t)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename T >
TE_VecAdd3< T > operator* (const TE_VecAdd3< T > &t, double alpha)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename T >
TE_VecAdd3< T > operator* (double alpha, const TE_VecAdd2< T > &t)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
MatVec_Expression< L, R > operator* (const AlphaMat_Expression< L > &l, const R &r)
 create a MatVec_Expression by (alpha*MATRIX) * VECTOR More...
 
template<typename TStorage >
DenseMatrix< TStorage > operator* (number a, const DenseMatrix< TStorage > &b)
 
template<typename TStorage >
DenseVector< TStorage > operator* (double alpha, const DenseVector< TStorage > &vec)
 
template<typename value_type >
double operator* (const TRANSPOSED< Vector< value_type > > &x, const Vector< value_type > &y)
 
template<typename L , typename R >
TE_VecAdd2< typename L::vector_type > operator+ (const TE_AlphaVec< L > &l, const TE_AlphaVec< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_type > operator+ (const TE_VecAdd2< L > &l, const TE_AlphaVec< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_type > operator+ (const TE_AlphaVec< R > &r, const TE_VecAdd2< L > &l)
 
template<typename L , typename R >
AlphaMatVec_X_Expression< L, operation_add, R > operator+ (const TE_AMV_X< L > &l, const TE_AMV_X< R > &r)
 create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
ReferenceObjectID operator++ (ReferenceObjectID &roid, int)
 
template<typename L , typename R >
TE_VecAdd2< typename L::vector_type > operator- (const TE_AlphaVec< L > &l, const TE_AlphaVec< R > &r)
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_type > operator- (const TE_VecAdd2< L > &l, const TE_AlphaVec< R > &r)
 
template<typename L , typename R >
TE_VecAdd3< typename L::vector_type > operator- (const TE_AlphaVec< R > &r, const TE_VecAdd2< L > &l)
 
template<typename L , typename R >
AlphaMatVec_X_Expression< L, operation_sub, R > operator- (const TE_AMV_X< L > &l, const TE_AMV_X< R > &r)
 create AlphaMatVec_X_Expression<L, operation_minus, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R> More...
 
UG_API bool operator< (const GeomObjID &gid1, const GeomObjID &gid2)
 
template<typename TStorage >
bool operator< (double alpha, const DenseVector< TStorage > &vec)
 
template<std::size_t N, typename T >
bool operator< (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 2, 2 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 1 > &v)
 formatted output of MathVector objects: (...,...) More...
 
template<typename T >
std::string operator<< (std::string a, T t)
 
std::ostream & operator<< (std::ostream &out, const GridLevel &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 2 > &v)
 formatted output of MathVector objects: (...,...) More...
 
std::ostream & operator<< (std::ostream &out, const HorizontalAlgebraLayouts &layouts)
 
template<>
std::string operator<< (std::string a, const char *s)
 
template<>
std::string operator<< (std::string a, std::string b)
 
std::ostream & operator<< (std::ostream &outStream, DiscPart part)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 3 > &v)
 formatted output of MathVector objects: (...,...) More...
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 2, 3 > &m)
 
UG_API std::ostream & operator<< (std::ostream &out, const GeomObjID &goId)
 
std::ostream & operator<< (std::ostream &out, const AlgebraLayouts &layouts)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 4 > &v)
 formatted output of MathVector objects: (...,...) More...
 
std::ostream & operator<< (std::ostream &out, const AlgebraID &ID)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 3, 2 > &m)
 
std::ostream & operator<< (std::ostream &out, const AlgebraType &v)
 writes the Identifier to the output stream More...
 
std::ostream & operator<< (std::ostream &outStream, const ParallelStorageType &type)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< 3, 3 > &m)
 
std::ostream & operator<< (std::ostream &out, const IndexLayout &layout)
 
std::ostream & operator<< (std::ostream &outStream, ReferenceObjectID type)
 
template<class vector_t >
std::ostream & operator<< (std::ostream &out, const AABox< vector_t > &box)
 
template<typename T , size_t n>
std::ostream & operator<< (std::ostream &out, const FixedArray1< T, n > &arr)
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const DenseMatrixInverse< T > &mat)
 
template<size_t TRank, size_t N, typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensor< TRank, N, T > &v)
 
template<typename TStorage >
std::ostream & operator<< (std::ostream &out, const DenseVector< TStorage > &vec)
 
std::ostream & operator<< (std::ostream &out, const CommonLocalDoFSet &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &outStream, Polynomial1D &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &out, const VariableArray1< T > &arr)
 
std::ostream & operator<< (std::ostream &out, const LocalDoFSet &v)
 writes to the output stream More...
 
template<int dim>
std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< dim > &v)
 writes to the output stream More...
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 0 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 1 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 2 > &v)
 
template std::ostream & operator<< (std::ostream &out, const DimLocalDoFSet< 3 > &v)
 
std::ostream & operator<< (std::ostream &os, const StringTableStream &sts)
 
template<typename TEntry >
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensorX< TEntry, 1 > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::FunctionIndexMapping &map)
 
template<typename TEntry , size_t N>
std::ostream & operator<< (std::ostream &outStream, const ug::MathTensorX< TEntry, N > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::FunctionGroup &grp)
 
template<class T >
std::ostream & operator<< (std::ostream &os, const Table< T > &table)
 prints a table to the specified ostream. More...
 
template<typename T , eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const ReservableArray2< T, T_ordering > &arr)
 
template<typename T , size_t rowsT, size_t colsT, eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const FixedArray2< T, rowsT, colsT, T_ordering > &arr)
 
template<int N>
std::ostream & operator<< (std::ostream &outStream, const ug::MultiIndex< N > &v)
 
template<std::size_t N>
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< N > &m)
 Print MathSymmetricMatrix<N> to standard output. More...
 
template<std::size_t N, std::size_t M>
std::ostream & operator<< (std::ostream &outStream, const ug::MathMatrix< N, M > &m)
 Print MathMatrix<N,M> to standard output. More...
 
std::ostream & operator<< (std::ostream &out, const QuadType &v)
 writes the Identifier to the output stream More...
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< 2 > &m)
 
std::ostream & operator<< (std::ostream &outStream, const ug::MathSymmetricMatrix< 3 > &m)
 
template<typename T , eMatrixOrdering T_ordering>
std::ostream & operator<< (std::ostream &out, const VariableArray2< T, T_ordering > &arr)
 
template<typename TStorage >
std::ostream & operator<< (std::ostream &out, const DenseMatrix< TStorage > &mat)
 
template<typename TDomain , typename TAlgebra >
std::ostream & operator<< (std::ostream &outStream, const GridFunction< TDomain, TAlgebra > &v)
 
template<std::size_t N, typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< N, T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 0, T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 1, T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 2, T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 3, T > &v)
 
template<typename T >
std::ostream & operator<< (std::ostream &outStream, const ug::MathVector< 4, T > &v)
 
std::ostream & operator<< (std::ostream &outStream, const ug::LocalMatrix &mat)
 
std::ostream & operator<< (std::ostream &outStream, const ug::LocalVector &vec)
 
template<typename TStorage >
bool operator<= (double alpha, const DenseVector< TStorage > &vec)
 
template<std::size_t N, typename T >
bool operator== (const MathVector< N, T > &v, const MathVector< N, T > &w)
 
template<typename T >
bool operator== (const MathVector< 0, T > &v, const MathVector< 0, T > &w)
 
template<typename TStorage >
bool operator> (double alpha, const DenseVector< TStorage > &vec)
 
template<typename TStorage >
bool operator>= (double alpha, const DenseVector< TStorage > &vec)
 
void OrderCuthillMcKee (DoFDistribution &dofDistr, bool bReverse)
 orders the dof distribution using Cuthill-McKee More...
 
template<typename TDomain >
void OrderCuthillMcKee (ApproximationSpace< TDomain > &approxSpace, bool bReverse)
 orders the all DofDistributions of the ApproximationSpace using Cuthill-McKee More...
 
template<typename TDomain >
void OrderDirectionYForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, std::vector< size_t > &indY)
 
template<typename TDomain >
void OrderDirectionZForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain, std::vector< size_t > &indZ)
 
template<typename TDomain >
void OrderLex (ApproximationSpace< TDomain > &approxSpace, const char *order)
 orders the all DofDistributions of the ApproximationSpace using lexicographic order More...
 
template<typename TDomain >
void OrderLexForDofDist (SmartPtr< DoFDistribution > dd, ConstSmartPtr< TDomain > domain)
 orders the dof distribution using Cuthill-McKee More...
 
bool OrientationMatches (const EdgeVertices &e1, const EdgeVertices &e2)
 
template<typename matrix_t , typename vector_t >
void OrthogProjectVec (vector_t &v, const matrix_t &A)
 Orthogonal projection. More...
 
template<typename T >
std::string OstreamShift (const T &t)
 
static void ParallelLayoutDebugSave (MultiGrid &mg)
 temporary method, which will be removed when debugging is done. More...
 
bool ParamToDouble (double &dOut, const char *param, int argc, const char *const *argv)
 
double ParamToDouble (const char *param, int argc, const char *const *argv, double dDefault)
 
bool ParamToInt (int &iOut, const char *param, int argc, const char *const *argv)
 
int ParamToInt (const char *param, int argc, const char *const *argv, int iDefault)
 
bool ParamToString (const char **strOut, const char *param, int argc, const char *const *argv)
 
template<typename TDomain >
static bool PartitionDistributedDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 
template<typename TDomain >
static bool PartitionDomain_Bisection (TDomain &domain, PartitionMap &partitionMap, int firstAxisToCut)
 partitions a domain by repeatedly cutting it along the different axis More...
 
template<typename TDomain >
static bool PartitionDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 Partitions a domain based on the elements of one level. More...
 
template<typename TDomain >
static bool PartitionDomain_LevelBased (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel=0, int hWeight=1, int vWeight=1)
 partitions a domain by using graph-based partitioning by METIS More...
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, SmartPtr< PartitionWeighting > weightFct)
 partitions a domain by using graph-based partitioning by METIS More...
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, int hWeight, int vWeight)
 
template<typename TDomain >
static bool PartitionDomain_MetisKWay (TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel, SmartPtr< PartitionWeighting > weightFct)
 
template<typename TDomain >
static bool PartitionDomain_RegularGrid (TDomain &domain, PartitionMap &partitionMap, int numCellsX, int numCellsY, int numCellsZ, bool surfaceOnly)
 partitions a domain by sorting all elements into a regular grid More...
 
template<typename TDomain >
static bool PartitionDomain_RegularGrid (TDomain &domain, PartitionMap &partitionMap, int numCellsX, int numCellsY, int numCellsZ, bool surfaceOnly)
 partitions a domain by sorting all elements into a regular grid More...
 
template<class TElem , class TIterator , class TAAPos >
bool PartitionElements_RegularGrid (SubsetHandler &shOut, TIterator begin, TIterator end, int numCellsX, int numCellsY, int numCellsZ, TAAPos &aaPos, typename Grid::traits< TElem >::callback cbConsiderElem=ConsiderAll(), int bucketSubset=-1)
 Partitions the elements in the grid by sorting them into a regular grid. More...
 
template<class TGeomBaseObj >
bool PartitionGrid_MetisKway (SubsetHandler &shPartitionOut, Grid &grid, int numParts)
 Partitions the elements in the grid using the METIS library. More...
 
template bool PartitionGrid_MetisKway< Edge > (SubsetHandler &, Grid &, int)
 
template bool PartitionGrid_MetisKway< Face > (SubsetHandler &, Grid &, int)
 
template bool PartitionGrid_MetisKway< Volume > (SubsetHandler &, Grid &, int)
 
template<class TGeomBaseObj >
bool PartitionMultiGrid_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &grid, int numParts, size_t baseLevel=0, int hWeight=1, int vWeight=1)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template<class TGeomBaseObj >
bool PartitionMultiGrid_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &grid, int numParts, size_t baseLevel, boost::function< int(TGeomBaseObj *, TGeomBaseObj *)> &weightFct)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template bool PartitionMultiGrid_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template bool PartitionMultiGrid_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Edge *, Edge *)> &)
 
template bool PartitionMultiGrid_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template bool PartitionMultiGrid_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Face *, Face *)> &)
 
template bool PartitionMultiGrid_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t, int, int)
 
template bool PartitionMultiGrid_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t, boost::function< int(Volume *, Volume *)> &)
 
template<class TGeomBaseObj >
bool PartitionMultiGridLevel_MetisKway (SubsetHandler &shPartitionOut, MultiGrid &mg, int numParts, size_t level)
 Partitions the elements in the multi-grid using the METIS library. More...
 
template bool PartitionMultiGridLevel_MetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_MetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_MetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t)
 
template<class TGeomBaseObj >
bool PartitionMultiGridLevel_ParmetisKway (SubsetHandler &shPartitionOut, MultiGrid &mg, int numParts, size_t level)
 Partitions the elements in the multi-grid using the PARMETIS library. More...
 
template bool PartitionMultiGridLevel_ParmetisKway< Edge > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_ParmetisKway< Face > (SubsetHandler &, MultiGrid &, int, size_t)
 
template bool PartitionMultiGridLevel_ParmetisKway< Volume > (SubsetHandler &, MultiGrid &, int, size_t)
 
string PathFromFilename (const string &str)
 
UG_API std::string PathFromFilename (const std::string &str)
 returns best guess of a path without a filename from a given string More...
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool PerformCollapses (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, number minEdgeLen, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, bool adaptive=true)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static bool PerformCollapses (const AdjustEdgeLengthDesc &desc, Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt)
 
static bool PerformRetetrahedralization (Grid &grid, SubsetHandler &sh, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, ANumber &aVolCon, bool applyVolumeConstraint, int verbosity)
 
template<class TAAPosVRT , class TAANormVRT >
bool PerformSplits (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, number maxEdgeLen, TAAPosVRT &aaPos, TAANormVRT &aaNorm, bool adaptive=true)
 
template<class TAAPosVRT , class TAANormVRT >
static bool PerformSplits (const AdjustEdgeLengthDesc &desc, Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool PerformSwaps (Grid &grid, SubsetHandler &shMarks, EdgeSelector &esel, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt)
 
static bool PerformTetrahedralization (Grid &grid, ISubsetHandler *pSH, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, int verbosity)
 
void PermuteIndicesInIndexLayout (IndexLayout &layout, const std::vector< size_t > &vIndNew)
 permutes an IndexLayout for the permutation of indices More...
 
UG_API bool PluginLoaded (const std::string &name)
 
bool PluginLoaded (const string &name)
 
template<class TAAPosVRT >
int PointFaceTest (vector3 &v, Face *f, TAAPosVRT &aaPos)
 
template<class TAAPosVRT >
UG_API int PointFaceTest (vector3 &v, Face *f, TAAPosVRT &aaPos)
 
template<class vector_t >
bool PointIsInsideQuadrilateral (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Returns true if the point lies inside or on the boundary of a quadrilateral. More...
 
template<>
bool PointIsInsideQuadrilateral (const MathVector< 3 > &v, const MathVector< 3 > &v0, const MathVector< 3 > &v1, const MathVector< 3 > &v2, const MathVector< 3 > &v3)
 
UG_API bool PointIsInsideTetrahedron (const vector3 &v, Tetrahedron *tet, Grid::VertexAttachmentAccessor< APosition > &aaPos)
 returns true if the point lies inside the tetrahedron More...
 
template<class vector_t >
bool PointIsInsideTetrahedron (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 Returns true if the point lies inside or on the boundary of a tetrahedron. More...
 
template<class vector_t >
bool PointIsInsideTriangle (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2)
 Returns true if the point lies inside or on the boundary of a triangle. More...
 
template<>
bool PointIsInsideTriangle (const MathVector< 3 > &v, const MathVector< 3 > &v0, const MathVector< 3 > &v1, const MathVector< 3 > &v2)
 
template<class vector_t >
bool PointIsInsideTriangle_HighAcc (const vector_t &v, const vector_t &v0, const vector_t &v1, const vector_t &v2)
 Returns true if the point lies inside or on a side of the given triangle. More...
 
template<class vector_t >
vector_t PointOnRay (const vector_t &from, const vector_t &dir, number s)
 returns the point described by a relative ray coordinate More...
 
static int PointTriangleIntersection (const vector3 &p, const TRI &t)
 
template<class TElemDisc >
static void post_assemble_loop (std::vector< TElemDisc *> vElemDisc)
 
template<class TElem >
static void PostProcessDistInfos (MultiGrid &mg, DistInfoSupplier &distInfos)
 DistInfos are post-processed and some values are adjusted (primarily missing vslaves-marks are added) More...
 
template<class TElemDisc >
static void prep_assemble_loop (std::vector< TElemDisc *> vElemDisc)
 
static void print_mark (int &posNow, int length)
 
static void print_mark (int &posNow, int length)
 
template<class TGeomObj >
void PrintAttachmentInfo (Grid &grid)
 prints information on all attachments of the specified grid More...
 
template<class TData , int dim>
void PrintCondUserDataValue (const UserData< TData, dim, bool > &ud, const MathVector< dim > &globIP, number time, int si)
 
void PrintDebugInfos (const vector< SweepLineVertex > &vrts, const list< SweepLineEdge > &edges)
 
void PrintDoFCount (const vector< DoFCount > &vDC, const string &sInfo, const string &sAlgebra, const string &sflags)
 
template<class TIterator , class TAAPos >
void PrintElementEdgeRatios (Grid &grid, TIterator elemsBegin, TIterator elemsEnd, TAAPos aaPos)
 
template<typename TDomain >
static void PrintElementEdgeRatios (TDomain &dom)
 
void PrintElementNumbers (const GridObjectCollection &goc)
 prints how many elements of each type exist in the goc. More...
 
void PrintGlobalLayout (const GlobalLayout &globalLayout, const char *name)
 
void PrintGridElementNumbers (Grid &grid)
 prints how many elements of each type exist in the grid. More...
 
void PrintGridElementNumbers (MultiGrid &mg)
 prints how many elements of each type exist in the multi grid. More...
 
void PrintGridElementNumbers (GridSubsetHandler &sh)
 prints how many elements of each type exist in the subset handler. More...
 
bool PrintLayouts (const HorizontalAlgebraLayouts &layout)
 
void PrintLUA ()
 
template<typename matrix_type >
void PrintMaple (const matrix_type &mat, const char *name)
 
template<typename matrix_type >
void PrintMatrix (const matrix_type &mat, const char *name)
 
void PrintQuadRule (const QuadratureRule< 2 > &q)
 
void PrintSimpleGrid (SimpleGrid &sg)
 
template<typename tvector >
void PrintStorageType (const tvector &v)
 
template<class TData , int dim>
void PrintUserDataValue (const UserData< TData, dim > &ud, const MathVector< dim > &globIP, number time, int si)
 
template<typename T >
void PrintVector (const T &v, std::string desc="")
 
void ProjectHierarchyToLimitSubdivisionVolume (MultiGrid &mg)
 Projection function for smooth subdivision (volumes+surface) refinement. More...
 
template<class vector_t >
number ProjectPointToLine (vector_t &vOut, const vector_t &v, const vector_t &from, const vector_t &to)
 finds the projection of v onto the line defined by from and to More...
 
template<class vector_t >
void ProjectPointToPlane (vector_t &vOut, const vector_t &v, const vector_t &p, const vector_t &n)
 projects v onto the plane defined by the point p and the planes normal n. More...
 
template<class vector_t >
number ProjectPointToRay (vector_t &vOut, const vector_t &v, const vector_t &from, const vector_t &dir)
 finds the projection of v onto the ray defined by from and dir More...
 
template<class TTriangleIterator , class TAAPosVRT >
bool ProjectPointToSurface (vector3 &vOut, const vector3 &v, const vector3 &n, TTriangleIterator trisBegin, TTriangleIterator trisEnd, TAAPosVRT &aaPos, bool compareNormals)
 
template<class TTriangleIterator , class TAAPosVRT >
UG_API bool ProjectPointToSurface (vector3 &vOut, const vector3 &v, const vector3 &n, TTriangleIterator trisBegin, TTriangleIterator trisEnd, TAAPosVRT &aaPos, bool compareNormals=false)
 
bool ProjectToLimitLoop (Grid &grid, APosition &aProjPos)
 projects surface vertices to their limit subdivision surface position More...
 
template<class TAVrtPos >
void ProjectToLimitPLoop (Grid &grid, TAVrtPos aPos, TAVrtPos aProjPos)
 projects all vertices in the given grid to their limit-positions using the piecewise loop scheme. More...
 
template<class TAVrtPos >
void ProjectToLimitSubdivBoundary (Grid &grid, TAVrtPos aPos, TAVrtPos aProjPos)
 projects all boundary vertices in the given grid to their limit-positions using the piecewise loop scheme. More...
 
template<class TAAPosVRT >
bool ProjectVerticesToCloseEdges (Grid &grid, GridObjectCollection elems, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAPos >
bool ProjectVerticesToCloseEdges (Grid &grid, GridObjectCollection elems, TAPos &aPos, number snapThreshold)
 
template<class TObjectCollection , class TAPos >
bool ProjectVerticesToCloseFaces (Grid &grid, TObjectCollection &elems, TAPos &aPos, number snapThreshold)
 
template<typename TDomain >
static void ProjectVerticesToSphere (TDomain &dom, std::vector< number > center, number radius, number eps)
 
template<typename TDomain , typename TAlgebra >
void Prolongate (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
template<typename TDomain , typename TAlgebra >
void ProlongateElemwise (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
template<typename TDomain , typename TAlgebra >
void ProlongateP1 (GridFunction< TDomain, TAlgebra > &uFine, const GridFunction< TDomain, TAlgebra > &uCoarse)
 
bool QuadDiagonalIsValid (const vector3 &c0, const vector3 &c1, const vector3 &c2, const vector3 &c3)
 returns true if the normals of the resulting triangles point into the same direction More...
 
template<class TriIter , class TAAPos >
bool QualityGridGeneration (Grid &grid, TriIter trisBegin, TriIter trisEnd, TAAPos &aaPos, number minAngle=0, Grid::edge_traits::callback cbConstrainedEdge=ConsiderNone(), int maxSteps=-1)
 
template<class TAAPos >
bool QualityGridGeneration (Grid &grid, DelaunayInfo< TAAPos > &info, number minAngle=0, int maxSteps=-1)
 Transforms the given triangle-set into a delaunay set. More...
 
template bool QualityGridGeneration (Grid &, DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &, number, int)
 
template<class TNumber >
TNumber rad_to_deg (TNumber rad)
 
template<typename TDomain >
static void RandomizeDomain (TDomain &dom, number dx, number dy, number dz)
 
template<class vector_t >
bool RayBoxIntersection (const vector_t &rayFrom, const vector_t &rayDir, const vector_t &boxMin, const vector_t &boxMax, number *tNearOut=NULL, number *tFarOut=NULL)
 checks if a ray is intersecting a box More...
 
bool RayCylinderIntersection (number &tMinOut, number &tMaxOut, const vector3 &rayFrom, const vector3 &rayDir, const vector3 &cylCenter, const vector3 &cylAxis, number cylRadius)
 returns the parameter values at which a given ray intersects an infinite cylinder. More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector2 &from, const vector2 &dir, Edge *e, Grid &g, Grid::VertexAttachmentAccessor< AVector2 > aaPos, number sml=SMALL)
 2d ray-element intersection for edges More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector2 &from, const vector2 &dir, Face *f, Grid &g, Grid::VertexAttachmentAccessor< AVector2 > aaPos, number sml=SMALL)
 2d ray-element intersection for faces More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Face *f, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for faces More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Volume *v, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for volumes More...
 
bool RayElementIntersection (number &sminOut, number &smaxOut, const vector3 &from, const vector3 &dir, Edge *e, Grid &g, Grid::VertexAttachmentAccessor< AVector3 > aaPos, number sml=SMALL)
 3d ray-element intersection for edges More...
 
template<class TElem , class vector_t >
static bool RayElementIntersectionImpl (number &sminOut, number &smaxOut, const vector_t &from, const vector_t &dir, TElem *e, Grid &g, Grid::VertexAttachmentAccessor< Attachment< vector_t > > aaPos, number sml)
 utility method for the full-dimensional RayElementIntersection implementation More...
 
template<class tree_t >
bool RayElementIntersections (std::vector< RayElemIntersectionRecord< typename tree_t::elem_t > > &intersectionsOut, const tree_t &tree, const typename tree_t::vector_t &rayFrom, const typename tree_t::vector_t &rayDir, const number small=1.e-12)
 
template<class vector_t >
bool RayLineIntersection2d (vector_t &vOut, number &bcOut, number &tOut, const vector_t &p0, const vector_t &p1, const vector_t &vFrom, const vector_t &vDir, number sml=0)
 calculates the intersection of a ray with a Line in 2d More...
 
template<class vector_t >
bool RayPlaneIntersection (vector_t &vOut, number &tOut, const vector_t &rayFrom, const vector_t &rayDir, const vector_t &p, const vector_t &n)
 calculates the intersection of the ray rayFrom+t*rayDir and the plane (x-p)*n=0. More...
 
template<class vector_t >
bool RayRayIntersection2d (vector_t &vOut, number &t0Out, number &t1Out, const vector_t &p0, const vector_t &dir0, const vector_t &p1, const vector_t &dir1)
 calculates the intersection of two Rays in 2d More...
 
bool RayRayIntersection3d (vector3 &aOut, vector3 &bOut, const vector3 &p0, const vector3 &dir0, const vector3 &p1, const vector3 &dir1)
 intersects two 3d rays More...
 
template<class vector_t >
bool RayRayProjection (number &t1Out, number &t2Out, const vector_t &from1, const vector_t &dir1, const vector_t &from2, const vector_t &dir2)
 Calculates the parameter values at wich two rays are closest. More...
 
template<class vector_t >
int RaySphereIntersection (number &s1Out, number &s2Out, const vector_t &v, const vector_t &dir, const vector_t &center, number radius)
 checks whether the line segment (v1, v2) intersect the given sphere. More...
 
template<class vector_t >
bool RayTriangleIntersection (vector_t &vOut, number &bc1Out, number &bc2Out, number &tOut, const vector_t &p0, const vector_t &p1, const vector_t &p2, const vector_t &vFrom, const vector_t &vDir, const number small=SMALL)
 calculates the intersection of a ray with a triangle More...
 
template<class vector_t >
bool RayTriangleIntersection (vector_t &vOut, const vector_t &p0, const vector_t &p1, const vector_t &p2, const vector_t &vFrom, const vector_t &vDir)
 calculates the intersection of a ray with a triangle More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 1 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 2 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 3 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
std::istream & read_plain_txt (std::istream &inStream, ug::MathVector< 4 > &v)
 plain text input of MathVectors: read space-separated coordinates More...
 
bool ReadFile (const char *filename, vector< char > &file, bool bText)
 
UG_API bool ReadFile (const char *filename, std::vector< char > &file, bool bText)
 
template<typename T >
void ReadFromFile (T &v, std::string filename)
 
static bool ReadGridHeader (GridHeader &gridHeader, BinaryBuffer &in)
 
static void ReadIndices (vector< int > &vIndsOut, char *buffer, const char *delim, bool newTokBuff=true)
 
template<class TElemIter >
static void ReadSubsetIndicesFromStream (TElemIter iterBegin, TElemIter iterEnd, ISubsetHandler &sh, BinaryBuffer &in)
 
static bool ReadTetrahedrons (Grid &grid, ifstream &in, Grid::VertexAttachmentAccessor< APosition > &aaPos, int &lineCount)
 
static bool ReadTriangles (Grid &grid, ifstream &in, Grid::VertexAttachmentAccessor< APosition > &aaPos, int &lineCount)
 
template<typename vector_type >
bool ReadVector (std::string filename, vector_type &vec, int dim)
 
void ReceiveGlobalLayout (pcl::InterfaceCommunicator< IndexLayout > &comm, const std::vector< int > &srcprocs, GlobalLayout &globalMasterLayout, GlobalLayout &globalSlaveLayout)
 
template<typename matrix_type >
void ReceiveMatrix (const matrix_type &A, matrix_type &M, IndexLayout &verticalMasterLayout, const std::vector< int > &srcprocs, ParallelNodes &PN)
 
template<typename TPIDs , typename TReceiveScheme >
void ReceiveOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TReceiveScheme &receiver)
 receives data over a interface based on a CommunicationScheme on a subgroup of processes More...
 
template<int dim>
MathVector< dimReferenceElementCenter (ReferenceObjectID roid)
 returns the Center of a reference element at run-time More...
 
template<>
MathVector< 1 > ReferenceElementCenter< 1 > (ReferenceObjectID roid)
 
template<>
MathVector< 2 > ReferenceElementCenter< 2 > (ReferenceObjectID roid)
 
template<>
MathVector< 3 > ReferenceElementCenter< 3 > (ReferenceObjectID roid)
 
int ReferenceElementDimension (ReferenceObjectID roid)
 returns the reference element dimension at run-time More...
 
bool Refine (Grid &grid, Selector &sel, RefinementProjector *projector=NULL, bool useSnapPoints=false)
 refines selected faces and edges regularily and builds a closure on adjacent unselected faces. More...
 
bool Refine (Grid &grid, Selector &sel, AInt &aInt, RefinementProjector *projector=NULL, bool useSnapPoints=false)
 refines selected faces and edges regularily and builds a closure on adjacent unselected faces. More...
 
template<class TElemClass >
static bool Refine (std::vector< Volume *> &vNewVolumesOut, Vertex **ppNewVertexOut, Vertex **newEdgeVertices, Vertex **newFaceVertices, Vertex *newVolumeVertex, const Vertex &prototypeVertex, Vertex **vrts, int(*funcRefine)(int *, int *, bool &, vector3 *, bool *), vector3 *corners=NULL, bool *isSnapPoint=NULL)
 
template<class vector_t >
void ReflectVectorAtPlane (vector_t &vReflectedOut, const vector_t &v, const vector_t &n, const vector_t &r0)
 reflects a vector at a plane More...
 
void release_mem (void *p)
 
template<int dim, class TVrtIterator >
void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, Attachment< MathVector< dim > > &aPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<int dim, class TVrtIterator , class TAAPos >
void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, TAAPos aaPos, number threshold)
 
template<class TElemIter >
void RemoveDuplicates (Grid &grid, TElemIter elemsBegin, TElemIter elemsEnd)
 Removes elements which share the same set of vertices with other elements in the given range. More...
 
template<class TGeomObj >
static void RemoveEmptyInterfaces (typename GridLayoutMap::Types< TGeomObj >::Map &map)
 A helper method for GridLayoutMap::remove_empty_interfaces() More...
 
template<typename TLayout >
bool RemoveInterface (TLayout &layout, int pid)
 
template<typename TLayout >
void RemoveInterfaces (TLayout &layout, std::vector< int > group)
 
void RemoveLowerDimSubsets (SubsetGroup &subsetGroup)
 
void RemoveWhitespaceFromString (std::string &string)
 removes all white space from a string, also within the string More...
 
static bool ReorderCornersCCW (Vertex **cornersOut, Vertex **const cornersIn, int numCorners, int firstCorner)
 helpful if a local vertex-order is required More...
 
static bool ReorderCornersCCW (Vertex **cornersOut, Vertex **const cornersIn, int numCorners, int firstCorner)
 helpful if a local vertex-order is required More...
 
string repeat (char c, int nr)
 Builds a string with specified repetitions of given character. More...
 
template<class TIterator >
bool RepeatedEdgeExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
template<class TIterator >
bool RepeatedFaceExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
template<class TIterator >
bool RepeatedVertexExtrusion (Grid &grid, TIterator iterBegin, TIterator iterEnd, int numSteps, const ug::vector3 &stepDir)
 
string replace_chars (string &str, char cToR, char cNew)
 
string ReplaceAll (string target, const string &oldstr, const string &newstr)
 
UG_API std::string ReplaceAll (std::string target, const std::string &oldstr, const std::string &newstr)
 Substitutes substrings of given string with other substrings. More...
 
static void ReplaceByConstrained (MultiGrid &mg, Vertex *v)
 
static void ReplaceByConstrained (MultiGrid &mg, Edge *e)
 
static void ReplaceByConstrained (MultiGrid &mg, Face *f)
 
static void ReplaceByConstraining (MultiGrid &, Vertex *)
 
static void ReplaceByConstraining (MultiGrid &mg, Edge *e)
 
static void ReplaceByConstraining (MultiGrid &mg, Face *f)
 
static void ReplaceByNormal (MultiGrid &mg, Vertex *v)
 
static void ReplaceByNormal (MultiGrid &mg, Edge *e)
 
static void ReplaceByNormal (MultiGrid &mg, Face *f)
 
void ReplaceIndicesInLayout (IndexLayout &layout, const std::vector< int > &vMap)
 replaces the indices in the layout based on a passed mapping More...
 
template<class TVrtIter , class TAAPos >
void ReplaceLowValenceVertices (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number maxSquaredHeightToBaseAreaRatio, TAAPos aaPos)
 
template<class TVrtIter , class TAAPos >
void ReplaceValence3Vertices (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number maxSquaredHeightToBaseAreaRatio, TAAPos aaPos)
 
static std::ios_base & reset_floats (std::ios_base &o)
 used to unset flags set by std::scientific or std::fixed. More...
 
template<class TElem , class TAAInd >
static void ResetSubsetIndices (Grid *pGrid, TAAInd &aaInd)
 
template<class TAAPosVRT >
VertexResolveEdgeEdgeIntersection (Grid &grid, Edge *e1, Edge *e2, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAAPosVRT >
bool ResolveEdgeFaceIntersection (Grid &grid, Edge *e, Face *f, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAPos >
bool ResolveTriangleIntersections (Grid &grid, TriangleIterator trisBegin, TriangleIterator trisEnd, number snapThreshold, TAPos &aPos)
 
template<class TAAPosVRT >
VertexResolveVertexEdgeIntersection (Grid &grid, Vertex *v, Edge *e, TAAPosVRT &aaPos, number snapThreshold)
 
template<class TAAPosVRT >
bool ResolveVertexFaceIntersection (Grid &grid, Vertex *v, Face *f, TAAPosVRT &aaPos, number snapThreshold, std::vector< Face *> *pNewFacesOut)
 
template<typename TDomain , typename TAlgebra >
void Restrict (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
template<typename TDomain , typename TAlgebra >
void RestrictElemwise (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
template<typename TDomain , typename TAlgebra >
void RestrictP1 (GridFunction< TDomain, TAlgebra > &uCoarse, const GridFunction< TDomain, TAlgebra > &uFine)
 
bool Retetrahedralize (Grid &grid, SubsetHandler &sh, ANumber &aVolumeConstraint, number quality=5, bool preserveBnds=false, bool preserveAll=false, APosition &aPos=aPosition, bool applyVolumeConstraint=true, int verbosity=0)
 If tetrahedrons are already present, this method refines them based on the given volume constraints. More...
 
number ReturnValueToBool (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
int ReturnValueToInteger (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
number ReturnValueToNumber (lua_State *L, int index)
 Helper to access a return value on the stack. More...
 
static void rot (number A[3][3], const number s, const number tau, const int i, const int j, const int k, const int l)
 
bool SameDimensionsInAllSubsets (const SubsetGroup &subsetGroup)
 
static void SaveCoarsenMarksToFile (ISelector &sel, const char *filename)
 
template<typename TDomain >
void SaveDomain (TDomain &domain, const char *filename)
 Saves the domain to a grid-file. More...
 
template void SaveDomain< Domain1d > (Domain1d &domain, const char *filename)
 
template void SaveDomain< Domain2d > (Domain2d &domain, const char *filename)
 
template void SaveDomain< Domain3d > (Domain3d &domain, const char *filename)
 
template<class TAPos >
static bool SaveGrid (Grid &grid, ISubsetHandler *psh, const char *filename, TAPos &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition1 &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition2 &aPos)
 
static bool SaveGrid3d (Grid &grid, ISubsetHandler *psh, const char *filename, APosition3 &aPos)
 
static bool SaveGrid3d_IMPL (Grid &grid, ISubsetHandler *pSH, const char *filename, AVector3 &aPos)
 
bool SaveGridHierarchyTransformed (MultiGrid &mg, ISubsetHandler &sh, const char *filename, number offset)
 Saves a grid hierarchy by offsetting levels along the z-axis. More...
 
bool SaveGridHierarchyTransformed (MultiGrid &mg, const char *filename, number offset)
 Saves a grid hierarchy by offsetting levels along the z-axis. More...
 
template<class TAPos >
bool SaveGridLevel (MultiGrid &srcMG, ISubsetHandler &srcSH, int lvl, const char *filename, TAPos aPos)
 Saves a grid level to a file. More...
 
bool SaveGridLevelToFile (MultiGrid &srcMG, ISubsetHandler &srcSH, int lvl, const char *filename)
 Saves a grid level to a file. More...
 
bool SaveGridToART (Grid &grid, const char *filename, ISubsetHandler *pSH=NULL, AVector3 &aPos=aPosition)
 saves a grid to art More...
 
bool SaveGridToELE (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos)
 
template<class TAPos >
bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
template<class TAPos >
bool SaveGridToFile (Grid &grid, const char *filename, TAPos &aPos)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector1 &)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector2 &)
 
template bool SaveGridToFile (Grid &, ISubsetHandler &, const char *, AVector3 &)
 
template bool SaveGridToFile (Grid &, const char *, AVector1 &)
 
template bool SaveGridToFile (Grid &, const char *, AVector2 &)
 
template bool SaveGridToFile (Grid &, const char *, AVector3 &)
 
bool SaveGridToLGB (Grid &grid, const char *filename, ISubsetHandler **ppSH, int numSHs, APosition aPos)
 
bool SaveGridToNCDF (Grid &grid, const char *filename, ISubsetHandler *pSH, APosition aPos)
 
bool SaveGridToOBJ (Grid &grid, const char *filename, AVector3 &aPos=aPosition, AVector2 *paTexCoord=NULL, ISubsetHandler *pSubsetHandler=NULL, std::vector< OBJMaterial > *pvMaterials=NULL)
 Saves a file from a wavefront '.obj' file. Writes optional subset-infos. More...
 
bool SaveGridToSTL (Grid &grid, const char *filename, ISubsetHandler *pSH, AVector3 &aPos)
 
bool SaveGridToTXT (Grid &grid, const char *filename, AVector3 &aPos=aPosition)
 saves a grid to txt More...
 
bool SaveGridToUGX (Grid &grid, ISubsetHandler &sh, const char *filename)
 Writes a grid to a ugx file. More...
 
template<class TAPosition >
bool SaveGridToUGX (Grid &grid, ISubsetHandler &sh, const char *filename, TAPosition &aPos)
 Writes a grid to an ugx file. internally uses GridWriterUGX. More...
 
template<class TAPosition >
bool SaveGridToVTU (Grid &grid, ISubsetHandler *psh, const char *filename, TAPosition &aPos)
 Writes a grid to a vtu (vtk unstructured mesh) file. More...
 
template<typename TGridFunction >
void SaveMatrixForConnectionViewer (TGridFunction &u, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
void SaveMatrixToMTX (const char *filename, MatrixOperator< CPUAlgebra::matrix_type, CPUAlgebra::vector_type > &A, std::string comment="%Generated with ug4.")
 Save the assembled matrix of a matrix operator to MatrixMarket format. More...
 
bool SaveParallelGridLayout (MultiGrid &mg, const char *filename, number offset=0.1)
 Saves the grid-layout of parallel multi-grids. More...
 
template<typename TDomain >
static bool SavePartitionMap (PartitionMap &pmap, TDomain &domain, const char *filename)
 
bool SaveSurfaceViewTransformed (MultiGrid &mg, const SurfaceView &sv, const char *filename, number offset=0.1)
 Saves a grid and assigns elements to subsets based on their surface-view-state. More...
 
template<typename T >
void SaveToFile (const T &v, std::string filename)
 
template<typename TGridFunction >
void SaveVectorCSV (TGridFunction &b, const char *filename)
 
template<typename TGridFunction >
void SaveVectorDiffForConnectionViewer (TGridFunction &b, TGridFunction &bCompare, const char *filename)
 
template<typename TGridFunction >
void SaveVectorDiffForConnectionViewer (TGridFunction &u, TGridFunction &compareVec, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
template<typename TGridFunction >
void SaveVectorForConnectionViewer (TGridFunction &b, const char *filename)
 
template<typename TGridFunction >
void SaveVectorForConnectionViewer (TGridFunction &u, MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &A, const char *filename)
 
template<class TDomain >
void ScaleDomain (TDomain &dom, const vector3 &center, const vector3 &scale)
 Scales selected elements around the given center. More...
 
template<class TDomain >
void ScaleDomain (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 Scales selected elements around the given center. More...
 
template<typename TDomain >
static void ScaleDomain (TDomain &dom, number sx, number sy, number sz)
 
template<class TDomain >
void ScaleDomainSqrtWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<class TDomain >
void ScaleDomainSquaredWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<class TDomain >
void ScaleDomainWeighting (TDomain &dom, ISelector &sel, const vector3 &center, const vector3 &scale)
 
template<typename TSparseMatrix >
void ScaleRow (TSparseMatrix &A, size_t i, number fac)
 
template<typename TSparseMatrix >
void ScaleSparseMatrixCommon (TSparseMatrix &A, double d)
 
std::string scientificStr (double d, size_t width)
 
template<int TDim, int TWorldDim>
bool SCVFofSCVRayIntersection (size_t &sideOut, number &bc, MathVector< TWorldDim > &GlobalIntersectionPointOut, MathVector< TDim > &LocalIntersectionPoint, const MathVector< TWorldDim > &Root, const MathVector< TWorldDim > &Direction, bool bPositiv, const MathVector< TWorldDim > *vCornerCoords)
 
template<class TIter >
void SelectAreaBoundary (ISelector &sel, const TIter begin, const TIter end)
 selects sides that are only adjacent to one of the given inner elements More...
 
template<class TElem , class TIterator >
void SelectAssociated (ISelector &sel, TIterator begin, TIterator end, ISelector::status_t status=ISelector::SELECTED)
 Selects all elements of type TElem, which touch an element between begin and end. More...
 
static void SelectAssociatedConstrainedElements (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
template<class TSelector , class TElemIterator >
void SelectAssociatedEdges (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated edges of the elements between elemsBegin and elemsEnd More...
 
void SelectAssociatedElements (ISelector &sel, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces)
 Selects / Deselects associated (low dimensional) elements. More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedFaces (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated faces of the elements between elemsBegin and elemsEnd More...
 
void SelectAssociatedGenealogy (MGSelector &msel, bool selectAssociatedElements)
 Selects the complete genealogy of all selected elements. More...
 
template<class TSelector >
void SelectAssociatedGridObjects (TSelector &sel, ISelector::status_t status)
 selects associated geometric objects of selected ones on each level. More...
 
template<class TSelector >
UG_API void SelectAssociatedGridObjects (TSelector &sel, ISelector::status_t status=ISelector::SELECTED)
 selects associated geometric objects of selected ones on each level. More...
 
template void SelectAssociatedGridObjects< MGSelector > (MGSelector &sel, ISelector::status_t status)
 
template void SelectAssociatedGridObjects< Selector > (Selector &sel, ISelector::status_t status)
 
template<class TElem >
static void SelectAssociatedSides (MGSelector &msel, TElem *e, ISelector::status_t status=ISelector::SELECTED)
 Recursively selects unselected sides. More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedVertices (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated vertices of the elements between elemsBegin and elemsEnd More...
 
template<class TSelector , class TElemIterator >
void SelectAssociatedVolumes (TSelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd, ISelector::status_t status=ISelector::SELECTED)
 selects all associated faces of the elements between elemsBegin and elemsEnd More...
 
template<class TElemIterator >
void SelectBoundaryElements (ISelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd)
 selects elements that lie on the associated grid's boundary More...
 
static void SelectChildrenOfSelectedShadowRimEdges (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
static void SelectChildrenOfSelectedShadowRimFaces (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 
static void SelectChildrenOfSelectedShadowVertices (MGSelector &msel, ISelector::status_t status=ISelector::SELECTED)
 Recursively selects all children of selected vertices. More...
 
template<class TEdgeIterator >
void SelectCreaseEdges (ISelector &sel, TEdgeIterator edgesBegin, TEdgeIterator edgesEnd, number minAngle, APosition aVrtPos, bool ignoreBoundaryEdges=true, ISelector::status_t state=ISelector::SELECTED)
 Selects edges which at which triangles meet in a large angle. More...
 
void SelectDomainElements (ISelector &sel, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces, bool selectVolumes)
 Selects / Deselects all elements. More...
 
template<class TDomain >
void SelectDomainSubset (ISelector &sel, TDomain &dom, int subsetIndex, bool bSelect, bool selectVrts, bool selectEdges, bool selectFaces, bool selectVolumes)
 Selects / Deselects elements in the given subset of the given domain. More...
 
static void SelectElementsForTargetPartition (MGSelector &msel, SubsetHandler &shPartition, int partitionIndex, bool partitionForLocalProc, bool createVerticalInterfaces)
 
template<class TElemIterator >
void SelectInnerElements (ISelector &sel, TElemIterator elemsBegin, TElemIterator elemsEnd)
 selects elements that do not lie on the associated grid's boundary More...
 
template<class TSelector >
void SelectInnerSelectionEdges (TSelector &sel)
 selects all edges that are only connected to selected elements. More...
 
template void SelectInnerSelectionEdges< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionEdges< Selector > (Selector &)
 
template<class TSelector >
void SelectInnerSelectionFaces (TSelector &sel)
 selects all faces that are only connected to selected elements. More...
 
template void SelectInnerSelectionFaces< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionFaces< Selector > (Selector &)
 
template<class TSelector >
void SelectInnerSelectionVertices (TSelector &sel)
 selects all vertices that are only connected to selected elements. More...
 
template void SelectInnerSelectionVertices< MGSelector > (MGSelector &)
 
template void SelectInnerSelectionVertices< Selector > (Selector &)
 
template<class TIter >
void SelectInterfaceElements (ISelector &sel, ISubsetHandler &sh, const TIter begin, const TIter end, bool regardSelectedNbrsOnly=false)
 Selects elements which are adjacent to higher dimensional elements of different subsets. More...
 
template<class TGeomObj >
void SelectionFill (Selector &sel, typename Grid::traits< typename TGeomObj::side >::callback cbRegionBoundary)
 Extends the selection around selected objects until selected sides are reached. More...
 
template void SelectionFill< Edge > (Selector &, Grid::vertex_traits::callback)
 
template void SelectionFill< Face > (Selector &, Grid::edge_traits::callback)
 
template void SelectionFill< Volume > (Selector &, Grid::face_traits::callback)
 
template<class TVrtIter , class TAAPos >
void SelectKinkVertices (Grid &grid, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number thresholdAngle, bool selectDarts, TAAPos aaPos, Grid::edge_traits::callback cbConsiderEdge=ConsiderAll())
 
template<class TVrtIter , class TAAPos >
void SelectKinkVertices (Selector &sel, TVrtIter vrtsBegin, TVrtIter vrtsEnd, number thresholdAngle, bool selectDarts, TAAPos aaPos, Grid::edge_traits::callback cbConsiderEdge)
 
template<class TElem >
void SelectLinkedElements (ISelector &sel, typename Grid::traits< TElem >::callback cbIsSelectable=ConsiderAll(), typename Grid::traits< typename TElem::side >::callback cbIsTraversable=ConsiderAll())
 Repeatedly traverses sides of selected elements and selects associated elements. More...
 
void SelectLinkedFlatAndDegeneratedFaces (Selector &sel, number maxDeviationAngle, bool traverseFlipped=false, bool stopAtSelectedEdges=false, number degThreshold=SMALL, APosition &aPos=aPosition)
 Extends the selection of faces to all neighbouring faces that have a similar normal. More...
 
void SelectLinkedFlatFaces (Selector &sel, number maxDeviationAngle, bool traverseFlipped=false, bool stopAtSelectedEdges=false, APosition &aPos=aPosition)
 Extends the selection of faces to all neighbouring faces that have a similar normal. More...
 
void SelectNonShadowsAdjacentToShadowsOnLevel (BoolMarker &sel, const SurfaceView &surfView, int level)
 selects all non-shadows, that are adjacent to a shadow on a grid levels More...
 
template<class TIterator >
static void SelectParents (MultiGrid &mg, MGSelector &msel, TIterator iterBegin, TIterator iterEnd)
 helper for SelectAssociatedGenealogy. More...
 
template<class TGeomObj , class TAAPos >
bool SelectRegion (Selector &sel, const typename TAAPos::ValueType &p, TAAPos &aaPos, typename Grid::traits< typename TGeomObj::side >::callback cbRegionBoundary)
 Selects the region which contains the given point. More...
 
template<class TElem >
static void SelectSelectedRootElementsAsVSlaves (MGSelector &msel)
 
template<class TAAPos >
void SelectShortPolychains (ISelector &sel, number maxLength, bool closedChainsOnly, TAAPos aaPos)
 Selects regular polygonal chains which are shorter than a given threshold. More...
 
void SelectSmoothEdgePath (Selector &sel, number thresholdDegree, number normalWeight, bool stopAtSelVrts=true, APosition &aPos=aPosition)
 selects for each selected edge all edges that can be reached by a smooth path. More...
 
template<class TElem >
void SelectSubsetElements (ISelector &sel, ISubsetHandler &sh, int subsetIndex, ISelector::status_t status=ISelector::SELECTED)
 selects all elements of the given type in the given subset More...
 
template<class TElem >
static void SelectUnselectedRootElementsAsVMasters (MGSelector &msel)
 
void SendGlobalLayout (pcl::InterfaceCommunicator< IndexLayout > &comm, const GlobalLayout &globalMasterLayout, const GlobalLayout &globalSlaveLayout, int pid)
 
template<typename matrix_type >
void SendMatrix (const matrix_type &A, IndexLayout &verticalSlaveLayout, int destproc, ParallelNodes &PN)
 
template<typename TSendingScheme , typename TPIDs >
void SendOnInterfaces (pcl::InterfaceCommunicator< IndexLayout > &communicator, TPIDs &pids, IndexLayout &layout, TSendingScheme &sender)
 sends data over a interface based on a CommunicationScheme to a subgroup of processes More...
 
void SeparateFaceSubsetsByNormal (Grid &grid, SubsetHandler &sh, APosition aPos=aPosition, ANormal *paNorm=NULL, int applyToSubset=-2)
 separates faces by orthogonal axis-aligned normals. More...
 
void SeparateFaceSubsetsByNormal (Grid &grid, SubsetHandler &sh, std::vector< vector3 > vNormals, APosition aPos=aPosition, ANormal *paNorm=NULL, int applyToSubset=-2)
 separates subset by the given normals. More...
 
bool SeparateRegions (Grid &grid, ISubsetHandler &shVolsOut, const ISubsetHandler &shFaces, const MarkerPointManager &mpm, int firstSubsetIndex)
 finds regions by marker-points More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSelection (Grid &grid, SubsetHandler &sh, Selector &sel, bool appendAtEnd=false)
 Assigns all elements of the given type to subsets. More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSeparators (Grid &grid, SubsetHandler &sh, bool appendAtEnd, boost::function< bool(typename TElem::lower_dim_base_object *)> cbIsSeparator)
 Assigns all elements of the given type to subsets. More...
 
template<class TElem >
void SeparateSubsetsByLowerDimSubsets (Grid &grid, SubsetHandler &sh, bool appendAtEnd=false)
 Assigns all elements of the given type to subsets. More...
 
template<class TOStream >
void Serialize (TOStream &buf, const IndexLayout::Interface &interface)
 
template<class TOStream >
void Serialize (TOStream &buf, const IndexLayout &layout)
 
template<typename T , class TOStream >
void Serialize (TOStream &buf, const ParallelVector< T > &v)
 Serialize for ParallelVector<T> More...
 
template<class TStream , class T >
void Serialize (TStream &buf, const T &val)
 
template<class TOStream >
void Serialize (TOStream &buf, const pcl::InterfaceCommunicator< IndexLayout > &ic)
 
template<size_t n>
void Serialize (std::ostream &buff, const DenseVector< FixedArray1< number, n > > &vec)
 
template<class TOStream >
void Serialize (TOStream &buf, const pcl::ProcessCommunicator &ic)
 
template<class T1 , class T2 , class TOStream >
void Serialize (TOStream &buf, const std::pair< T1, T2 > &v)
 
template<typename T >
void Serialize (std::ostream &buff, const DenseVector< VariableArray1< T > > &vec)
 
template<class T , class TOStream >
void Serialize (TOStream &buf, const std::set< T > &m)
 writes data from a set to a binary stream More...
 
template<class TOStream >
void Serialize (TOStream &buf, const std::string &str)
 Writes a string to a binary stream. More...
 
template<class TOStream >
void Serialize (TOStream &buf, const Variant &v)
 serializes a variant More...
 
template<class T , class TOStream >
void Serialize (TOStream &buf, const std::vector< T > &vec)
 writes data in a vector to a binary stream More...
 
template<class TOStream >
void Serialize (TOStream &buf, const std::vector< bool >::reference &boolRef)
 
template<class Key , class T , class TOStream >
void Serialize (TOStream &buf, const std::map< Key, T > &m)
 writes data from a map to a binary stream More...
 
template<typename TValueType , class TOStream >
void Serialize (TOStream &buf, const Vector< TValueType > &v)
 
template<class TIStream >
void Serialize (TIStream &buf, const std::vector< bool > &vec)
 
template<typename T >
void Serialize (std::ostream &buff, const DenseMatrix< VariableArray2< T > > &mat)
 
template<class TStream , std::size_t N, class T >
void Serialize (TStream &out, const MathVector< N, T > &val)
 
template<class TElem , class TAttachment >
bool SerializeAttachment (Grid &grid, TAttachment &attachment, BinaryBuffer &out)
 
template<class TElem , class TAttachment >
bool SerializeAttachment (Grid &grid, TAttachment &attachment, typename geometry_traits< TElem >::iterator iterBegin, typename geometry_traits< TElem >::iterator iterEnd, BinaryBuffer &out)
 copies attached values to a binary stream. More...
 
void SerializeGlobalLayout (BinaryBuffer &stream, const GlobalLayout &globalLayout)
 
bool SerializeGridElements (Grid &grid, BinaryBuffer &out)
 Writes all grid elements into a binary-stream. More...
 
bool SerializeGridElements (Grid &grid, GridObjectCollection goc, BinaryBuffer &out)
 Writes a part of the grids elements to a binary-stream. More...
 
bool SerializeGridElements (Grid &grid, GridObjectCollection goc, AInt &aIntVRT, BinaryBuffer &out)
 Writes a part of the grids elements to a binary-stream. More...
 
template<typename TLocalToGlobal >
void SerializeInterface (BinaryBuffer &stream, const IndexLayout::Interface &interface, const TLocalToGlobal &localToGlobal)
 
template<typename TLocalToGlobal >
void SerializeLayout (BinaryBuffer &stream, const IndexLayout &layout, const TLocalToGlobal &localToGlobal)
 
template<typename TSparseMatrix , class TOStream >
void SerializeMatrix (TOStream &buf, const TSparseMatrix &A)
 
bool SerializeMultiGridElements (MultiGrid &mg, GridObjectCollection goc, MultiElementAttachmentAccessor< AInt > &aaInt, BinaryBuffer &out, MultiElementAttachmentAccessor< AGeomObjID > *paaID=NULL)
 writes a part of the elements of a MultiGrid to a binary stream. More...
 
bool SerializeMultiGridElements (MultiGrid &mg, GridObjectCollection goc, BinaryBuffer &out)
 writes a part of the elements of a MultiGrid to a binary stream. More...
 
bool SerializeMultiGridElements (MultiGrid &mg, BinaryBuffer &out)
 writes the elements of a MultiGrid to a binary stream. More...
 
template<typename T , class TOStream >
void SerializeParallelData (TOStream &buf, T &t)
 
size_t SerializerGetLastID ()
 
template<typename matrix_type >
void SerializeRow (BinaryBuffer &stream, const matrix_type &mat, size_t localRowIndex, ParallelNodes &PN)
 
bool SerializeSubsetHandler (Grid &grid, ISubsetHandler &sh, GridObjectCollection goc, BinaryBuffer &out)
 writes the subset-indices of all elements in the goc to a stream. More...
 
bool SerializeSubsetHandler (Grid &grid, ISubsetHandler &sh, BinaryBuffer &out)
 writes the subset-indices of all elements in the grid to a stream. More...
 
template<typename T , class TOStream >
void SerializeUniquePart (TOStream &buf, const ParallelMatrix< T > &A)
 
template<typename TValueType , class TOStream >
void SerializeUniquePart (TOStream &buf, const ParallelVector< TValueType > &v)
 
template<class TAttachmentAccessor , class TIter , class TVal >
void SetAttachmentValues (TAttachmentAccessor &aaVal, TIter elemsBegin, TIter elemsEnd, const TVal &val)
 sets attachment-values for elements between elemsBegin and elemsEnd. More...
 
void SetBoundaryRefinementRule (GlobalBoundaryRefinementRule refRule)
 
template<typename TSparseMatrix >
void SetCol (TSparseMatrix &A, size_t i, size_t alpha, number val=0.0)
 
template<typename TMatrix >
void SetDirichletRow (TMatrix &mat, const DoFIndex &ind)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, size_t i, size_t alpha)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, size_t i)
 
template<typename TSparseMatrix >
void SetDirichletRow (TSparseMatrix &A, const std::vector< size_t > vIndex)
 
static void SetFrequency (const std::string &csvFile)
 
template<typename TMatrix >
void SetInterpolation (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex, bool assembleLinearProblem=true)
 sets a matrix row corresponding to averaging the constrained index More...
 
void SetLagrangeEdgeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeEdgeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeFaceLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeFaceMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p)
 
void SetLagrangeVertexLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeVertexMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
void SetLagrangeVolumeLocalDoFs (std::vector< LocalDoF > &vLocalDoF, const ReferenceElement &rRef, const size_t p)
 
template<typename TRefElem >
void SetLagrangeVolumeMultiIndex (MathVector< TRefElem::dim, int > *vMultiIndex, const TRefElem &rRef, size_t p, size_t &index)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool SetLocalMatrix (TGlobalMatrix &mat, const TLocalMatrix &localMat)
 
template<typename TGlobalMatrix , typename TLocalMatrix >
bool SetLocalMatrix (TGlobalMatrix &mat, TLocalMatrix &localMat, const size_t *rowIndices, const size_t *colIndices)
 
template<typename TMatrix >
static void SetMatrixAsPermutation (TMatrix &PA, const TMatrix &A, std::vector< size_t > &perm)
 
template<typename T >
void SetParallelData (T &t, IndexLayout &masterLayout, IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > &ic, pcl::ProcessCommunicator &pc)
 
void SetRootPath (const std::string &strRoot)
 Initializes the paths of ug::PathProvider. More...
 
template<typename TMatrix >
void SetRow (TMatrix &mat, const DoFIndex &ind, number val=0.0)
 
template<typename TSparseMatrix >
void SetRow (TSparseMatrix &A, size_t i, size_t alpha, number val=0.0)
 
template<typename TSparseMatrix >
void SetRow (TSparseMatrix &A, size_t i, number val=0.0)
 
static void SetShinyCallLoggingMaxFrequency (int maxFreq)
 
template<typename T >
void SetSize (T &t, size_t a, size_t b)
 
template<typename T >
void SetSize (T &t, size_t a)
 
template<>
void SetSize (number &d, size_t a)
 
template<>
void SetSize (number &d, size_t a, size_t b)
 
template<typename T >
void SetSize (DenseMatrix< T > &t, size_t a, size_t b)
 
template<typename T >
void SetSize (DenseVector< T > &t, size_t a)
 
void SetSmoothSubdivisionVolumesBoundaryRefinementRule (std::string bndRefRule)
 
void SetTetRefinementRule (std::string ruleName)
 
template<typename TVector >
static void SetVectorAsPermutation (TVector &Pv, const TVector &v, std::vector< size_t > &perm)
 
void sgetrf_ (lapack_int *m, lapack_int *n, lapack_float *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void sgetri_ (lapack_int *n, lapack_float *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_float *pWork, lapack_int *worksize, lapack_int *info)
 
void sgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const lapack_float *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, lapack_float *b, lapack_int *ldb, lapack_int *info)
 
template<typename Matrix_type , typename Vector_type >
bool sgs_step (const Matrix_type &A, Vector_type &x, const Vector_type &b)
 Performs a symmetric gauss-seidel step. More...
 
template<typename Matrix_type , typename Vector_type >
void sgs_step (const Matrix_type &A, Vector_type &c, const Vector_type &d, const number relaxFactor)
 Performs a symmetric gauss-seidel step. Using sgs_step within a preconditioner-scheme leads to the fact that we get the correction by successive inserting the already computed values of c in c = N * d, with c being the correction and d being the defect. N denotes the matrix of the second normal-form of a linear iteration scheme. More...
 
number ShapeQualityDegree (SimpleGrid &sg, int triIndex)
 compares the area of the triangle to the length of its edges. More...
 
number ShapeQualityDegree (SimpleGrid &sg)
 returns the worst quality-degree of the triangles in sg. More...
 
template<int refDim, int dim>
void ShapesAtGlobalPositionElem (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 
template<int dim>
void ShapesAtGlobalPositionVertex (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const LFEID &lfeID)
 
void ShinyCallLoggingEnd ()
 
void ShinyCallLoggingStart ()
 
template<typename TRefElem , int TWorldDim>
void SideNormal (MathVector< TWorldDim > &normalOut, int side, const MathVector< TWorldDim > *vCornerCoords)
 Normal to a side of an Element in a given Dimension. More...
 
template<int dim>
void SideNormal (ReferenceObjectID roid, MathVector< dim > &normalOut, int side, const MathVector< dim > *vCornerCoords)
 Computation of the side normal for a generic reference element: More...
 
template<>
void SideNormal< 1 > (ReferenceObjectID roid, MathVector< 1 > &normalOut, int side, const MathVector< 1 > *vCornerCoords)
 
template<>
void SideNormal< 2 > (ReferenceObjectID roid, MathVector< 2 > &normalOut, int side, const MathVector< 2 > *vCornerCoords)
 
template<>
void SideNormal< 3 > (ReferenceObjectID roid, MathVector< 3 > &normalOut, int side, const MathVector< 3 > *vCornerCoords)
 
template<class TEdgeIter , class TAAPos >
void SimplifyPolylines (Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd, number curvatureThreshold, TAAPos aaPos)
 
template<class TEdgeIter , class TAAPos >
void SimplifySmoothedPolylines (Grid &grid, TEdgeIter edgesBegin, TEdgeIter edgesEnd, number curvatureThreshold, TAAPos aaPos, number smoothingAlpha, int smoothingIterations)
 
template<class TIterator , class AAPosVRT >
void SlopeSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, const vector3 &up, int numIterations)
 
void SnapMarkerPointToGridVertex (MarkerPoint &markerInOut, Grid &grid, number normalOffset, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid::VertexAttachmentAccessor< ANormal > *paaNorm=NULL)
 Snaps a marker point to a grid vertex. More...
 
string SnipString (const string &str, size_t totalSize, size_t replaceLast, const char replace)
 
UG_API std::string SnipString (const std::string &str, size_t totalSize, size_t replaceLast=0, const char replace='.')
 creates a truncated string and may add truncation symbol at end More...
 
string SnipStringFront (const string &str, size_t totalSize, size_t replaceFirst, const char replace)
 
UG_API std::string SnipStringFront (const std::string &str, size_t totalSize, size_t replaceFront=0, const char replace='.')
 creates a truncated string and may add truncation symbol at front More...
 
bool SolveDeficit (DenseMatrix< VariableArray2< double > > &A, DenseVector< VariableArray1< double > > &x, DenseVector< VariableArray1< double > > &rhs, double deficitTolerance)
 
template<typename matrix_t , typename vector_t >
bool SolveLU (const DenseMatrix< matrix_t > &A, DenseVector< vector_t > &x, const size_t *pInterchange)
 
template<std::size_t TDim>
void SolveTensorMatrixEquation (MathMatrix< TDim, TDim > &X, const MathTensor4< TDim, TDim, TDim, TDim > &A, const MathMatrix< TDim, TDim > &rhs)
 
bool SortDD (SmartPtr< DoFDistribution > spDD1, SmartPtr< DoFDistribution > spDD2)
 
template<class TVrtIter , class TAAPos >
void SpacialVertexSort (std::multimap< number, Vertex *> &vrtsOut, const TVrtIter vrtsBegin, const TVrtIter vrtsEnd, const typename TAAPos::ValueType &rayFrom, const typename TAAPos::ValueType &rayDir, TAAPos aaPos, bool clearContainer=true)
 sorts vertices along the specified ray More...
 
void split_parameters (std::vector< std::string > &paramsOut, char *strParams, const char *delims=" ")
 fills paramsOut with the parameters that are seperated by the characters given in delim. More...
 
static void split_parameters (ParameterList *pParamList, const char *pParamString)
 
template<typename TVector >
void SplitAddRhs_OneSide (TVector &rhs, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TVector >
void SplitAddRhs_Symmetric (TVector &rhs, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TMatrix >
void SplitAddRow_OneSide (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<typename TMatrix >
void SplitAddRow_Symmetric (TMatrix &A, std::vector< size_t > &constrainedIndex, std::vector< std::vector< size_t > > &vConstrainingIndex)
 
template<class TVertex >
TVertex * SplitEdge (Grid &grid, Edge *e, bool bConservative)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
template<class TVertex >
TVertex * SplitEdge (Grid &destGrid, Grid &srcGrid, Edge *e, AVertex *paAssociatedVertices, bool bConservative)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
bool SplitEdge (SimpleGrid &sg)
 
template<class TVertex >
UG_API TVertex * SplitEdge (Grid &grid, Edge *e, bool bConservative=false)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
template<class TVertex >
UG_API TVertex * SplitEdge (Grid &destGrid, Grid &srcGrid, Edge *e, AVertex *paAssociatedVertices=NULL, bool bConservative=false)
 inserts new triangles and one new vertex by splitting the specified edge. More...
 
bool SplitIrregularManifoldSubset (SubsetHandler &sh, int srcIndex, int targetIndex, bool strictSplitting=false)
 Keeps a regular part in the subset and assigns all other faces to another one. More...
 
bool SplitIrregularPolyChain (SubsetHandler &sh, int srcIndex, int targetIndex)
 Makes sure that the polychain at srcIndex is regular and not separated. More...
 
void SplitOctahedronToTetrahedrons (Grid &grid, Octahedron *oct, Volume *parentVol, std::vector< Tetrahedron *> &vTetsOut, int bestDiag)
 Function for splitting an octahedron to 4 sub-tetrahedrons. More...
 
template<class TNumber >
TNumber sq (TNumber val)
 returns the square of a value (val*val) More...
 
template<typename T >
MathMatrix< 0, 0, T >::value_type SqrtGramDeterminant (const MathMatrix< 0, 0, T > &m)
 
template<size_t N, typename T >
MathMatrix< N, 0, T >::value_type SqrtGramDeterminant (const MathMatrix< N, 0, T > &m)
 
template<size_t M, typename T >
MathMatrix< 0, M, T >::value_type SqrtGramDeterminant (const MathMatrix< 0, M, T > &m)
 
bool StartsWith (const string &str, const string &begin)
 
UG_API bool StartsWith (const std::string &str, const std::string &search)
 checks whether a given string starts with a specified substring More...
 
template<typename TGridFunction >
number StdFuncIntegralOnVertex (SmartPtr< TGridFunction > spGridFct, size_t fct, int si)
 
bool STLFileHasASCIIFormat (const char *filename)
 
static RefinementMark StringToRefinementMark (std::string markType)
 Returns a refinement mark, given a string describing it. More...
 
void SubMult (number &dest, const number &b, const number &vec)
 
template<typename A , typename B , typename C >
void SubMult (A &dest, const B &b, const C &vec)
 
template<typename A , typename B , typename C >
void SubMult (DenseVector< A > &dest, const DenseMatrix< B > &mat, const DenseVector< C > &vec)
 
template<typename A , typename B >
void SubMult (DenseMatrix< A > &dest, const double &alpha, const DenseMatrix< B > &mat)
 
template<typename A , typename B >
void SubMult (DenseVector< A > &dest, const double &b, const DenseVector< B > &vec)
 
template<typename A >
void SubMult (A &dest, const A &vec, const double &b)
 
bool SubsetIsRegularGrid (const SubsetHandler &sh, int si)
 returns if a subset is a regular grid More...
 
bool SubsetIsRegularGrid (const MGSubsetHandler &sh, int si)
 returns if a subset is a regular grid More...
 
bool SubsetIsRegularGrid (const ISubsetHandler &ish, int si)
 returns if a subset is a regular grid More...
 
template<typename TGridFunction , typename TBaseElem >
void SubtractValueFromComponent (SmartPtr< TGridFunction > spGF, size_t fct, number sub)
 
template<typename T1 >
DenseMatrix< T1 >::value_type Sum1Mat1 (const DenseMatrix< T1 > &mat)
 
double Sum1Mat1 (double d)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, size_t fct, SubsetGroup &ssGroup)
 
template<typename TGridFunction , typename TBaseElem >
number SumGFValuesAt (TGridFunction *u, const char *fct_names, const char *subset_names)
 
bool SwapEdge (SimpleGrid &sg)
 
EdgeSwapEdge (Grid &grid, Edge *e)
 swaps e and thus reconnects its two adjacent triangles. More...
 
bool SweepLine_CreateMonotones (vector< SweepLineVertex > &vrts, list< SweepLineEdge > &edges)
 inserts new edges so that edges contains a set of monotone polynomes More...
 
bool SweepLineEdgeIntersectsSweepLine (number &xOut, const SweepLineEdge &edge, number sweepLineY)
 
static void SynchronizeAttachedGlobalAttachments (Grid &g, const pcl::ProcessCommunicator &procComm)
 
template<class TElem >
static void SynchronizeDistInfos (MultiGrid &mg, DistInfoSupplier &distInfos)
 
template<class TVrtIter , class TAAPos3 >
void TangentialSmooth (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos3 aaPos, number alpha, size_t numIterations)
 
template<class TVrtIter , class TAAPos3 >
void TangentialSmoothSimple (Grid &g, TVrtIter vrtsBegin, TVrtIter vrtsEnd, TAAPos3 aaPos, number alpha, size_t numIterations)
 
template<typename T >
TE_TRANSPOSED< T > te_transpose (const T &t)
 
const double & te_transpose (const double &t)
 
double & te_transpose (double &t)
 
template<std::size_t TDim, std::size_t TDimSQ>
void Tens2ToVec (DenseVector< FixedArray1< number, TDimSQ > > &vec, const MathMatrix< TDim, TDim > &tens2)
 transformation of a tensor of rank 2 (R^dim x R^dim) into a vector (R^(dim^2)) More...
 
template<std::size_t TDim>
void Tens4Add (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim>
void Tens4Contract (MathMatrix< TDim, TDim > &tens2_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4, const MathMatrix< TDim, TDim > &tens2)
 
template<std::size_t TDim>
void Tens4Contract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim>
void Tens4Contract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b, const MathTensor4< TDim, TDim, TDim, TDim > &tens4c)
 
template<std::size_t TDim>
void Tens4Identity (MathTensor4< TDim, TDim, TDim, TDim > &Ident)
 this function computes the 4th order identity tensor More...
 
template<std::size_t TDim>
void Tens4IdentitySym (MathTensor4< TDim, TDim, TDim, TDim > &Ident)
 this function computes the symmetric 4th order identity tensor More...
 
template<std::size_t TDim>
void Tens4Subtract (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4a, const MathTensor4< TDim, TDim, TDim, TDim > &tens4b)
 
template<std::size_t TDim, std::size_t TDimSQ>
void Tens4ToMat (DenseMatrix< FixedArray2< number, TDimSQ, TDimSQ > > &mat, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<std::size_t TDim>
void Tens4Zero (MathTensor4< TDim, TDim, TDim, TDim > &tensOut)
 
void TerminateAbortedRun ()
 Terminates the current run if AbortRun() was called and the abort-run-flag is thus set to true. More...
 
template<typename TDomain >
static bool TestDomainInterfaces (TDomain *dom)
 
template<class TAPos >
bool TestGridLayoutMap (MultiGrid &mg, GridLayoutMap &glm, TAPos &aPos)
 
bool TestGridLayoutMap (MultiGrid &mg, GridLayoutMap &glm)
 Checks whether the grid-layout-map on this proc is consistent with connected ones. More...
 
void TestQuadRule ()
 
void TetrahedralizeHybridTetOctGrid (MultiGrid &mg, int bestDiag)
 Conversion function for hybrid tetra-/octahedral multigrids. More...
 
void TetReferenceMappingTest (std::vector< number > vCornerCoord0, std::vector< number > vCornerCoord1, std::vector< number > vCornerCoord2, std::vector< number > vCornerCoord3, std::vector< number > vGlobPos)
 
template<typename T >
bool ThrowIfIsVectorNanOrTooBig (const T &t, const char *callerName)
 
void ThrowMissingVirtualMethod (const char *method, const ReferenceObjectID roid)
 
void ThrowMissingVirtualMethod (const char *method)
 
void TokenizeString (const string &str, vector< string > &vToken, const char delimiter)
 
UG_API void TokenizeString (const std::string &str, std::vector< std::string > &vToken, const char delimiter=',')
 splits the string into parts based on a separating char More...
 
vector< string > TokenizeString (const string &str, const char delimiter)
 
UG_API std::vector< std::string > TokenizeString (const std::string &str, const char delimiter=',')
 splits the string into parts based on a separating character More...
 
vector< string > TokenizeString (const char *str, const char delimiter=',')
 splits the string into parts based on a separating character More...
 
void TokenizeTrimString (const string &str, vector< string > &vToken, const char delimiter)
 
UG_API void TokenizeTrimString (const std::string &str, std::vector< std::string > &vToken, const char delimiter=',')
 splits the string into trimmed parts based on a separating char More...
 
vector< string > TokenizeTrimString (const string &str, const char delimiter)
 
UG_API std::vector< std::string > TokenizeTrimString (const std::string &str, const char delimiter=',')
 splits the string into trimmed parts based on a separating char More...
 
string ToLower (string str)
 
UG_API std::string ToLower (std::string str)
 Returns a lower case version of the specified string. More...
 
template<typename T >
std::string ToString (const T &t)
 Convert a object supporting 'std::cout << obj' to a string. More...
 
string ToUpper (string str)
 
UG_API std::string ToUpper (std::string str)
 Returns an upper case version of the specified string. More...
 
bool TransformPointSetTo2D (vector2 *pointSetOut, const vector3 *pointSet, size_t numPoints)
 transforms points from 3d space to 2d space. More...
 
template<class TAAPos >
void TransformVertex (Vertex *vrt, matrix33 &m, TAAPos &aaPos)
 transforms a vertex by a given matrix More...
 
template<class TAAPos >
UG_API void TransformVertex (Vertex *vrt, matrix33 &m, TAAPos &aaPos)
 transforms a vertex by a given matrix More...
 
template<class TIterator , class TAAPos >
void TransformVertices (TIterator vrtsBegin, TIterator vrtsEnd, matrix33 &m, TAAPos &aaPos)
 transforms all given vertices by a given matrix More...
 
template<class TIterator , class TAAPos >
UG_API void TransformVertices (TIterator vrtsBegin, TIterator vrtsEnd, matrix33 &m, TAAPos &aaPos)
 transforms all given vertices by a given matrix More...
 
template<class TDomain >
void TranslateDomain (TDomain &dom, ISelector &sel, const vector3 &offset)
 Translates (moves) selected elements by the given offset. More...
 
template<typename TDomain >
static void TranslateDomain (TDomain &dom, number tx, number ty, number tz)
 
template<class TAAPosVRT >
void TranslateSelection (Selector &sel, const typename TAAPosVRT::ValueType &offset, TAAPosVRT &aaPos)
 moves all vertices touching the selection by the specified offset. More...
 
template<size_t N, size_t M, typename T >
void Transpose (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 transpose a matrix More...
 
template<typename matrix_t >
void Transpose (matrix_t &m)
 transpose a matrix_t, override original matrix_t More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void TransposedMatVecMult (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Transposed Matrix - Vector Muliplication. More...
 
template<typename vector_t_out , typename matrix_t , typename vector_t_in >
void TransposedMatVecMultAdd (vector_t_out &vOut, const matrix_t &m, const vector_t_in &v)
 Transposed Matrix - Vector Muliplication. More...
 
char TransposeModeToChar (eTransposeMode t, bool isComplex)
 
template<std::size_t TDim>
void TransTens4 (MathTensor4< TDim, TDim, TDim, TDim > &tens4_out, const MathTensor4< TDim, TDim, TDim, TDim > &tens4)
 
template<class tree_t , class traverser_t >
void TraverseBreadthFirst (const tree_t &tree, traverser_t &traverser)
 
template<class tree_t , class traverser_t >
void TraverseDepthFirst (const tree_t &tree, traverser_t &traverser)
 
template<class tree_t , class traverser_t >
int TraverseDepthFirstRecursion (const tree_t &tree, traverser_t &traverser, int curNode)
 
template<class vector_t >
number TriangleArea (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 calculates the are of the triangle defined by p1, p2 and p3 More...
 
template<class vector_t >
vector_t TriangleBarycenter (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 Calculates the barycenter of a triangle (1/3) * (p1+p2+p3) More...
 
UG_API bool TriangleBoxIntersection (const MathVector< 3 > &p0, const MathVector< 3 > &p1, const MathVector< 3 > &p2, const MathVector< 3 > &boxMin, const MathVector< 3 > &boxMax)
 checks whether a triangle and an axis-aligned box intersect. More...
 
bool TriangleFill (std::vector< int > &vTriIndsOut, vector2 *polyChain, size_t polyChainSize, bool bTriangulateInside=true)
 Fills a 2d-region, bounded by the given poly-chain, with triangles. More...
 
bool TriangleFill (Grid &grid, EdgeIterator edgesBegin, EdgeIterator edgesEnd, bool bTriangulateInside=true)
 Fills a region bounded by the given poly-chain with triangles. More...
 
UG_API bool TriangleFill_SweepLine (std::vector< int > &facesOut, const std::vector< vector2 > &srcVrts, std::vector< int > &srcEdges)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
template<class TIterator >
bool TriangleFill_SweepLine (Grid &grid, TIterator edgesBegin, TIterator edgesEnd, APosition &aPosVRT, AInt &aIntVRT, SubsetHandler *pSH=NULL, int newSubsetIndex=-1)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
bool TriangleFill_SweepLine (vector< int > &facesOut, const vector< vector2 > &srcVrtsOrig, vector< int > &srcEdges)
 Performs triangulation of a polygon and resoves additional inner edges. More...
 
bool TriangleFill_SweepLine (std::vector< int > &facesOut, const std::vector< vector3 > &srcVrts, std::vector< int > &srcEdges)
 Performs triangulation of a 3d polygon and resolves inner edges. More...
 
number TriangleQuality (vector3 &v1, vector3 &v2, vector3 &v3)
 a simple measure for the quality of a triangle More...
 
template<class vector_t >
number TriangleQuality_Area (const vector_t &p1, const vector_t &p2, const vector_t &p3)
 returns a value between 0 and 1. The higher the better. More...
 
UG_API bool TriangleTriangleIntersection (const MathVector< 3 > &p0, const MathVector< 3 > &p1, const MathVector< 3 > &p2, const MathVector< 3 > &q0, const MathVector< 3 > &q1, const MathVector< 3 > &q2, MathVector< 3 > *ip1Out=NULL, MathVector< 3 > *ip2Out=NULL, number snapThreshold=SMALL)
 checks whether two triangles intersect and returns the intervals, if they do. More...
 
UG_API void Triangulate (Grid &grid, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 
void Triangulate (Grid &grid, Quadrilateral *q, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 removes the quadrilateral and replaces it by two triangles. More...
 
void Triangulate (Grid &grid, QuadrilateralIterator iterBegin, QuadrilateralIterator iterEnd, Grid::VertexAttachmentAccessor< APosition > *paaPos=NULL)
 replaces all specified quadrilaterals by triangles. More...
 
static int TriCubeIntersection (const TRI &t)
 
string TrimString (const string &str)
 
UG_API std::string TrimString (const std::string &str)
 removes all white space from the front and end of a string More...
 
const char * TrueFalseString (bool b)
 
static vector2 trunk (const vector2 &v, number smallestVal)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
VertexTryCollapse (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static VertexTryCollapse (const AdjustEdgeLengthDesc &desc, Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<class TAAPosVRT , class TAANormVRT >
bool TrySplit (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, EdgeSelector *pCandidates=NULL, SubsetHandler *pshMarks=NULL)
 
template<class TAAPosVRT , class TAANormVRT >
static bool TrySplit (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, EdgeSelector *pCandidates=NULL, SubsetHandler *pshMarks=NULL)
 
template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool TrySwap (Grid &grid, Edge *e, TAAPosVRT &aaPos, TAANormVRT &aaNorm, TAAIntVRT &aaInt, SubsetHandler *pshMarks=NULL, EdgeSelector *pCandidates=NULL)
 
template<typename T >
std::string TypeName (const T &t)
 
template<typename T >
std::string TypeName ()
 
template<class MT >
void UG_LOG_Matrix (const MT &A)
 
template<class VT >
void UG_LOG_Vector (const VT &vec)
 
const char * UGBuildHost ()
 
const char * UGCompileDate ()
 
int UGFinalize ()
 finalizes ug More...
 
int UGFinalizeNoPCLFinalize ()
 
void UGForceExit ()
 Calls UGFinalize and terminates the application. More...
 
UG_API std::string UGGetVersionString ()
 Returns the version number of the current ug-version. More...
 
int UGInit (int *argcp, char ***argvp, int parallelOutputProcRank)
 initializes ug More...
 
bool UGInitPlugins ()
 Init (if UG_PLUGINS is set) embedded or non-shared plugins. More...
 
void UGOutputProfileStatsOnExit (bool bEnable)
 Call with true, if profiling output is desired at the end of the show. More...
 
const char * UGSvnRevision ()
 
UG_API bool UnloadPlugins ()
 
void UpdateChainInfo (ChainInfo &ci, vector2 *polyChain, vector2 *edgeNormals)
 
static void UpdateProfiler_BridgeImpl (number damping)
 
void UpdateTotalMem ()
 
template<class TNumber >
TNumber urand (TNumber lowerBound, TNumber upperBound)
 uniform distributed random numbers in [lowerBound, upperBound[. Use srand to set a seed. More...
 
bool Valence3VertexIsObsolete (const vector3 &p, const vector3 &c0, const vector3 &c1, const vector3 &c2, number maxSquaredHeightToBaseAreaRatio)
 
bool Valence4VertexIsObsolete (const vector3 &p, const vector3 &c0, const vector3 &c1, const vector3 &c2, const vector3 &c3, number maxSquaredHeightToBaseAreaRatio)
 
template<typename Matrix_type , typename Vector_type >
bool Vanka_step (const Matrix_type &A, Vector_type &x, const Vector_type &b, number relax)
 
template<>
const std::string & Variant::to< const std::string & > () const
 
template<>
std::string Variant::to< std::string > () const
 
template<>
Variant::Type Variant::type< const std::string & > ()
 
template<>
Variant::Type Variant::type< std::string > ()
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 adds two MathVector<N>s and stores the result in a third one More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 adds three MathVector<N>s and stores the result in a fourth one More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &v4)
 adds four MathVector<N>s and stores the result in a firth one More...
 
template<typename vector_t >
void VecAdd (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 Add a scalar to a vector (componentwise) More...
 
template<typename vector_t >
vector_t::value_type VecAngle (const vector_t &v1, const vector_t &v2)
 returns the angle between two vectors in radiants More...
 
template<typename vector_t >
vector_t::value_type VecAngleNorm (const vector_t &v1, const vector_t &v2)
 returns the angle between two vectors of length 1 in radiants More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1)
 adds a MathVector<N> to a second one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 adds two MathVector<N>s and adds the result to a third one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3)
 adds two MathVector<N>s and adds the result to a fourth one More...
 
template<typename vector_t >
void VecAppend (vector_t &vOut, const vector_t &v1, const vector_t &v2, const vector_t &v3, const vector_t &v4)
 adds two MathVector<N>s and adds the result to a fifth one More...
 
template<typename vector_t >
void VecAssign (vector_t &dest, const vector_t &v1)
 sets dest = v1 entrywise More...
 
template<typename T >
void VecAssign (GPUVector< T > &dest, const GPUVector< T > &v1)
 sets dest = v1 entrywise More...
 
template<typename T >
void VecAssign (ParallelVector< T > &dest, const ParallelVector< T > &v1)
 
template<typename TVector >
void VecBroadcast (TVector *pVecDest, const TVector *pVecSrc, const IndexLayout &slaveLayoutDest, const IndexLayout &masterLayoutSrc, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 broadcasts all values from master indices to slave values in a second vector More...
 
template<typename vector_target_t , typename vector_source_t >
void VecCopy (vector_target_t &target, const vector_source_t &source, typename vector_target_t::value_type fill)
 Copy contents between vectors of possibly different types. More...
 
template<typename vector_t >
void VecCross (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 calculates the cross product of two Vectors of dimension 3. It makes no sense to use VecCross for vector_ts that have not dimension 3. More...
 
template<typename vector_t >
vector_t::value_type VecDistance (const vector_t &v1, const vector_t &v2)
 returns the distance of two vector_ts. More...
 
template<typename vector_t >
vector_t::value_type VecDistanceSq (const vector_t &v1, const vector_t &v2)
 returns the squared distance of two vector_ts. More...
 
template<typename vector_t >
vector_t::value_type VecDot (const vector_t &v1, const vector_t &v2)
 returns the dot-product of two vector_ts More...
 
template<typename TVector >
void VecGather (TVector *pVecDest, const TVector *pVecSrc, const IndexLayout &masterLayoutDest, const IndexLayout &slaveLayoutSrc, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 gathers all values in master indices of a second vector More...
 
template<typename vector_t >
vector_t::value_type VecInftyNorm (const vector_t &v)
 
template<typename vector_t >
void VecInterpolateLinear (vector_t &vOut, const vector_t &v1, const vector_t &v2, typename vector_t::value_type interpAmount)
 
template<typename vector_t >
vector_t::value_type VecLength (const vector_t &v)
 returns the length of v. Slower than VecLengthSq. More...
 
template<typename vector_t >
vector_t::value_type VecLengthSq (const vector_t &v)
 returns the squared length of v. Faster than VecLength. More...
 
template<typename vector_t >
vector_t::value_type VecMaxNorm (const vector_t &v)
 
template<typename vector_t >
void VecNormalize (vector_t &vOut, const vector_t &v)
 scales a vector_t to unit length More...
 
double VecNormSquared (const double &a)
 returns norm_2^2(a) More...
 
template<typename vector_t >
number VecNormSquared (const vector_t &a, const vector_t &b, const std::vector< size_t > vIndex)
 returns norm_2^2(a) on a given index set More...
 
template<typename vector_t >
double VecNormSquared (const vector_t &a)
 returns norm_2^2(a) More...
 
template<typename T >
double VecNormSquared (const GPUVector< T > &a, const GPUVector< T > &b)
 returns norm_2^2(a) More...
 
void VecNormSquaredAdd (const double &a, double &s)
 calculates s += norm_2^2(a) More...
 
template<typename vector_t >
void VecNormSquaredAdd (const vector_t &a, const vector_t &b, number &sum, const std::vector< size_t > vIndex)
 calculates s += norm_2^2(a) on a given index set More...
 
template<typename vector_t >
void VecNormSquaredAdd (const vector_t &a, double &sum)
 calculates s += norm_2^2(a) More...
 
template<typename T >
void VecNormSquaredAdd (const GPUVector< T > &a, const GPUVector< T > &b, double &sum)
 calculates s += norm_2^2(a) More...
 
template<typename vector_t >
vector_t::value_type VecOneNorm (const vector_t &v)
 
template<typename vector_t >
vector_t::value_type VecPNorm (const vector_t &v, unsigned int p)
 
double VecProd (const double &a, const double &b, double &s)
 returns scal<a, b> More...
 
template<typename vector_t >
void VecProd (const vector_t &a, const vector_t &b, number &sum, const std::vector< size_t > vIndex)
 calculates s += scal<a, b> on a given index set More...
 
template<typename vector_t >
number VecProd (const vector_t &a, const vector_t &b, const std::vector< size_t > vIndex)
 returns scal<a, b> on a given index set More...
 
template<typename vector_t >
void VecProd (const vector_t &a, const vector_t &b, double &sum)
 calculates s += scal<a, b> More...
 
template<typename vector_t >
double VecProd (const vector_t &a, const vector_t &b)
 returns scal<a, b> More...
 
template<typename T >
void VecProd (const GPUVector< T > &v1, const GPUVector< T > &v2, double &res)
 calculates s += scal<a, b> More...
 
template<typename T >
double VecProd (const GPUVector< T > &v1, const GPUVector< T > &v2)
 returns scal<a, b> More...
 
template<typename T >
double VecProd (const ParallelVector< T > &a, const ParallelVector< T > &b)
 
void VecProdAdd (const double &a, const double &b, double &s)
 calculates s += scal<a, b> More...
 
template<typename vector_t >
void VecProdAdd (const vector_t &a, const vector_t &b, double &s)
 
template<typename vector_t >
void VecScale (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 scales a MathVector<N> More...
 
void VecScaleAdd (double &dest, double alpha1, const double &v1, double alpha2, const double &v2)
 calculates dest = alpha1*v1 + alpha2*v2. for doubles More...
 
void VecScaleAdd (double &dest, double alpha1, const double &v1, double alpha2, const double &v2, double alpha3, const double &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3. for doubles More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &dest, number alpha1, const vector_t &v1, number alpha2, const vector_t &v2, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 + alpha2*v2 on a given index set More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &dest, number alpha1, const vector_t &v1, number alpha2, const vector_t &v2, number alpha3, const vector_t &v3, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 on a given index set More...
 
template<typename vector_t , template< class T > class TE_VEC>
void VecScaleAdd (TE_VEC< vector_t > &dest, double alpha1, const TE_VEC< vector_t > &v1, double alpha2, const TE_VEC< vector_t > &v2)
 calculates dest = alpha1*v1 + alpha2*v2 More...
 
template<typename vector_t , template< class T > class TE_VEC>
void VecScaleAdd (TE_VEC< vector_t > &dest, double alpha1, const TE_VEC< vector_t > &v1, double alpha2, const TE_VEC< vector_t > &v2, double alpha3, const TE_VEC< vector_t > &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2)
 Scales two Vectors, adds them and returns the sum in a third vector. More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3)
 Scales three Vectors, adds them and returns the sum in a fourth vector. More...
 
template<typename vector_t >
void VecScaleAdd (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3, typename vector_t::value_type s4, const vector_t &v4)
 Scales four Vectors, adds them and returns the sum in a fifth vector. More...
 
template<typename T >
void VecScaleAdd (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1, double alpha2, const GPUVector< T > &v2)
 calculates dest = alpha1*v1 + alpha2*v2 More...
 
template<typename T >
void VecScaleAdd (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1, double alpha2, const GPUVector< T > &v2, double alpha3, const GPUVector< T > &v3)
 calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 More...
 
template<typename T >
void VecScaleAdd (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1, double alpha2, const ParallelVector< T > &v2)
 
template<typename T >
void VecScaleAdd (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1, double alpha2, const ParallelVector< T > &v2, double alpha3, const ParallelVector< T > &v3)
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1)
 Scales a Vector and adds it to a second vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2)
 Scales two Vectors, adds them and adds the sum to a third vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3)
 Scales three Vectors, adds them and adds the sum to a fourth vector. More...
 
template<typename vector_t >
void VecScaleAppend (vector_t &vOut, typename vector_t::value_type s1, const vector_t &v1, typename vector_t::value_type s2, const vector_t &v2, typename vector_t::value_type s3, const vector_t &v3, typename vector_t::value_type s4, const vector_t &v4)
 Scales four Vectors, adds them and adds the sum to a fifth vector. More...
 
void VecScaleAssign (double &dest, double alpha1, const double &v1)
 calculates dest = alpha1*v1. for doubles More...
 
template<typename vector_t >
void VecScaleAssign (vector_t &dest, number alpha1, const vector_t &v1, const std::vector< size_t > vIndex)
 calculates dest = alpha1*v1 on a given index set More...
 
template<typename vector_t >
void VecScaleAssign (vector_t &dest, double alpha1, const vector_t &v1)
 calculates dest = alpha1*v1 More...
 
template<typename T >
void VecScaleAssign (GPUVector< T > &dest, double alpha1, const GPUVector< T > &v1)
 calculates dest = alpha1*v1 More...
 
template<typename T >
void VecScaleAssign (ParallelVector< T > &dest, double alpha1, const ParallelVector< T > &v1)
 
template<typename vector_t >
void VecSet (vector_t &dest, number alpha, const std::vector< size_t > vIndex)
 sets dest = alpha on a given index set More...
 
template<typename vector_t >
void VecSet (vector_t &vInOut, typename vector_t::value_type s)
 Set each vector component to scalar (componentwise) More...
 
template<typename vector_t >
void VecSubtract (vector_t &vOut, const vector_t &v1, const vector_t &v2)
 subtracts v2 from v1 and stores the result in a vOut More...
 
template<typename vector_t >
void VecSubtract (vector_t &vOut, const vector_t &v, typename vector_t::value_type s)
 Subtract a scalar from a vector (componentwise) More...
 
void vecSum (double &erg, double alpha, double vec)
 
template<typename T >
void vecSum (typename T::value_type &erg, double alpha, const T &vec)
 
double vecSum (double alpha, double vec)
 
template<typename T >
T::value_type vecSum (double alpha, const T &vec)
 
template<typename vector_t , typename T1 >
void VectorAdd (vector_t &dest, const T1 &t1)
 transforms x += X1 into x = (1.0)*X1 + (1.0)*x More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2, double alpha3, const vector_t2 &v3)
 v = Mv + Mv + v More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const vector_t2 &v2, double alpha3, const vector_t3 &v3)
 v = Mv + v + v More...
 
template<typename vector_t , typename T0 , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha0, const T0 &t0, double alpha1, const vector_t2 &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 
template<typename vector_t , typename matrix_t , typename vector_t2 , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t2 &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2, double alpha3, const T3 &t3)
 
template<typename vector_t , typename vector_t1 , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t1 &v1, double alpha2, const vector_t2 &v2, double alpha3, const vector_t3 &v3)
 v = v + v + v More...
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 v = Mv + Mv More...
 
template<typename vector_t , typename matrix_t , typename vector_t2 >
void VectorAssign (vector_t &dest, double alpha1, const MatVec_Expression< matrix_t, vector_t > &m1, double alpha2, const vector_t2 &v2)
 v = Mv + v More...
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, double alpha1, const vector_t &v1, double alpha2, const MatVec_Expression< matrix_t, vector_t > &m2)
 v = v + Mv More...
 
template<typename vector_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, double alpha1, const vector_t2 &v1, double alpha2, const vector_t3 &v2)
 v = v + v More...
 
template<typename vector_t , typename matrix_t >
void VectorAssign (vector_t &dest, const MatVec_Expression< matrix_t, vector_t > &m1)
 v = Mv More...
 
template<typename vector_t , typename vector_t2 , typename vector_t3 >
void VectorAssign (vector_t &dest, const vector_t2 &v1)
 v = v More...
 
template<typename vector_t , typename T1 , typename operation , typename T2 , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const AlphaMatVec_X_Expression< T1, operation, T2 > &t1, double alpha2, const T3 &t2)
 
template<typename vector_t , typename T1 , typename T2 , typename operation , typename T3 >
void VectorAssign (vector_t &dest, double alpha1, const T1 &t1, double alpha2, const AlphaMatVec_X_Expression< T2, operation, T3 > &t2)
 
template<typename vector_t , typename T1 , typename operation , typename T2 >
void VectorAssign (vector_t &dest, const AlphaMatVec_X_Expression< T1, operation, T2 > &t)
 
template<typename vector_t , typename T1 >
void VectorSub (vector_t &dest, const T1 &t1)
 transforms x -= X1 into x = (-1.0)*X1 + (1.0)*x More...
 
template<std::size_t TDim, std::size_t TDimSQ>
void VecToTens2 (MathMatrix< TDim, TDim > &tens2, const DenseVector< FixedArray1< number, TDimSQ > > &vec)
 transformation of a vector (R^(dim^2)) into a tensor of rank 2 (R^dim x R^dim) More...
 
template<typename vector_t >
vector_t::value_type VecTwoNorm (const vector_t &v)
 
template<typename vector_t >
vector_t::value_type VecTwoNormSq (const vector_t &v)
 
template<class TAAPos >
number VertexDistance (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the distance between two vertices. More...
 
template<class TAAPos >
UG_API number VertexDistance (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the distance between two vertices. More...
 
template<class TAAPos >
number VertexDistanceSq (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the squared distance between two vertices. More...
 
template<class TAAPos >
UG_API number VertexDistanceSq (Vertex *v0, Vertex *v1, TAAPos &aaPos)
 Returns the squared distance between two vertices. More...
 
bool vertexGroupsMatch (const IVertexGroup *elem, const IVertexGroup &desc)
 
template<class TIter >
void VisitAll (const TIter begin, const TIter end, boost::function< void(typename TIter::value_type)> visitorCallback)
 Visits all elements between begin and end and executes the visitorCallback on them. More...
 
template<class TIter >
void VisitAreaBoundary (Grid &g, const TIter begin, const TIter end, boost::function< bool(typename TIter::value_type)> cbBelongsToArea, boost::function< void(typename Pointer2Value< typename TIter::value_type >::type::side)> cbVisitSide)
 Visits all boundary elements of the area specified through the iterators. More...
 
bool VolumeContains (VolumeVertices *v, Vertex *vrt)
 returns true if the given volume contains the given vertex More...
 
bool VolumeContains (Volume *v, EdgeVertices *ev)
 returns true if the given volume contains the given edge More...
 
bool VolumeContains (Volume *v, FaceVertices *fv)
 returns true if the given volume contains the given face More...
 
template<typename T >
bool WarnIfIsVectorNanOrTooBig (const T &t, const char *callerName)
 
template<class TIterator , class AAPosVRT >
void WeightedEdgeSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations, Grid::vertex_traits::callback cbSmoothVertex)
 
template<class TIterator , class AAPosVRT >
void WeightedFaceSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, int numIterations, Grid::vertex_traits::callback cbSmoothVertex)
 
template<class TIterator , class AAPosVRT >
void WeightedNormalSmooth (Grid &grid, TIterator vrtsBegin, TIterator vrtsEnd, AAPosVRT &aaPos, number alpha, number dotThreshold, int numIterations)
 
bool WildcardMatch (const char *str, const char *pattern)
 wildcard matches like bla.* or *.bla or t?st More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 1 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 2 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 3 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
std::ostream & write_plain_txt (std::ostream &outStream, const ug::MathVector< 4 > &v)
 plain text output of MathVector objects: space-separated coordinates More...
 
template<typename TDomain >
void WriteAlgebraIndices (std::string name, ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd)
 
void WriteCallLog (const char *filename)
 
void WriteCallLog (const char *filename, int procId)
 
template<class TElem , class TAValue >
void WriteDebugValuesToFile (const char *filename, Grid &grid, TAValue &aVal, bool levelWise)
 Writes level and center of each object together with a custom value to a file. More...
 
static void WriteEdges (ofstream &out, EdgeIterator edgesBegin, EdgeIterator edgesEnd, int indexDimension, Grid::VertexAttachmentAccessor< AInt > &aaInt)
 
static void WriteFaces (ofstream &out, FaceIterator facesBegin, FaceIterator facesEnd, int indexDimension, Grid::VertexAttachmentAccessor< AInt > &aaInt)
 
static void WriteGridHeader (const GridHeader &gridHeader, BinaryBuffer &out)
 
static bool WriteLGM (Grid &grid, const char *lgmFilename, const char *problemName, const char *lgmName, int convex, const SubsetHandler &shFaces, const SubsetHandler &shVolumes, EdgeSelector &LineSel, VertexSelector &SurfVrtSel, Grid::EdgeAttachmentAccessor< AInt > &aaLineIndex, Grid::VertexAttachmentAccessor< AInt > &aaSurfVrtIndex, Grid::VertexAttachmentAccessor< AVector3 > &aaPos)
 writes an *lgm file More...
 
template<class TFunction >
void WriteMatrixToConnectionViewer (const char *filename, const typename TFunction::algebra_type::matrix_type &A, const TFunction &u)
 
static bool WriteNG (Grid &grid, const SubsetHandler &shFaces, const SubsetHandler &shVolumes, const char *ngFilename, VertexSelector &SurfVrtSel, VertexSelector &InnVrtSel, VertexSelector &NgVrtSel, EdgeSelector &LineSel, Grid::EdgeAttachmentAccessor< AInt > &aaLineIndex, Grid::VertexAttachmentAccessor< AInt > &aaInnVrtIndex, Grid::VertexAttachmentAccessor< AInt > &aaNgVrtIndex, Grid::FaceAttachmentAccessor< AInt > &aaFaceIndex, Grid::VertexAttachmentAccessor< AVector3 > &aaPos)
 writes an *ng file More...
 
template<class TElem >
static void WriteParent (MultiGrid &mg, TElem *pElem, MultiElementAttachmentAccessor< AInt > &aaInt, BinaryBuffer &out)
 
void WriteProfileDataXML (const char *filename)
 Writes profile data of process 0 to the specified file. More...
 
void WriteProfileDataXML (const char *filename, int procId)
 Writes profile data to the specified file. More...
 
template<class TElemIter >
static void WriteSubsetIndicesToStream (TElemIter iterBegin, TElemIter iterEnd, ISubsetHandler &sh, BinaryBuffer &out)
 
template<typename Vector_type , typename postype >
void WriteVectorCSV (const char *filename, const Vector_type &b, postype *positions, int dimensions)
 writes to a file in somewhat SparseMatrix-market format (for connection viewer) More...
 
template<class TFunction >
void WriteVectorCSV (const char *filename, const typename TFunction::algebra_type::vector_type &b, const TFunction &u)
 
template<class TFunction >
void WriteVectorToConnectionViewer (const char *filename, const typename TFunction::algebra_type::vector_type &b, const TFunction &u, const typename TFunction::algebra_type::vector_type *pCompareVec=NULL)
 
template<class TFunction >
void WriteVectorToConnectionViewer (const char *filename, const typename TFunction::algebra_type::matrix_type &A, const typename TFunction::algebra_type::vector_type &b, const TFunction &u, const typename TFunction::algebra_type::vector_type *pCompareVec=NULL)
 
UG_API std::string XMLStringEscape (std::string s)
 returns a string suitable for XML files this functions escapes the characters <, >, ', " and & More...
 
string XMLStringEscape (string s)
 
void zgetrf_ (lapack_int *m, lapack_int *n, std::complex< lapack_double > *pColMajorMatrix, lapack_int *lda, lapack_int *ipiv, lapack_int *info)
 
void zgetrs_ (char *trans, lapack_int *n, lapack_int *nrhs, const std::complex< lapack_double > *pColMajorMatrix, lapack_int *lda, const lapack_int *ipiv, std::complex< lapack_double > *b, lapack_int *ldb, lapack_int *info)
 
template<size_t N, typename T >
MathMatrix< N, N, T >::value_type Determinant (const MathMatrix< N, N, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Determinant (const MathMatrix< 1, 1, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Determinant (const MathMatrix< 2, 2, T > &m)
 Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Determinant (const MathMatrix< 3, 3, T > &m)
 Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type GramDeterminant (const MathMatrix< N, M, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type GramDeterminant (const MathMatrix< 1, 1, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type GramDeterminant (const MathMatrix< 2, 2, T > &m)
 Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type GramDeterminant (const MathMatrix< 3, 3, T > &m)
 Gram Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type SqrtGramDeterminant (const MathMatrix< N, M, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type SqrtGramDeterminant (const MathMatrix< 1, 1, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type SqrtGramDeterminant (const MathMatrix< 2, 2, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type SqrtGramDeterminant (const MathMatrix< 3, 3, T > &m)
 Square root of Gram Determinant of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type Inverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Inverse (MathMatrix< 1, 1, T > &mOut, const MathMatrix< 1, 1, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Inverse (MathMatrix< 2, 2, T > &mOut, const MathMatrix< 2, 2, T > &m)
 Inverse of a matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Inverse (MathMatrix< 3, 3, T > &mOut, const MathMatrix< 3, 3, T > &m)
 Inverse of a matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type InverseTransposed (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type InverseTransposed (MathMatrix< 1, 1, T > &mOut, const MathMatrix< 1, 1, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type InverseTransposed (MathMatrix< 2, 2, T > &mOut, const MathMatrix< 2, 2, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type InverseTransposed (MathMatrix< 3, 3, T > &mOut, const MathMatrix< 3, 3, T > &m)
 Transposed-Inverse of a Matrix (= Inverse-Transposed of a Matrix) More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type RightInverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type RightInverse (MathMatrix< 1, 1 > &mOut, const MathMatrix< 1, 1 > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type RightInverse (MathMatrix< 2, 2 > &mOut, const MathMatrix< 2, 2 > &m)
 Right-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type RightInverse (MathMatrix< 3, 3 > &mOut, const MathMatrix< 3, 3 > &m)
 Right-Inverse of a Matrix. More...
 
template<size_t N, size_t M, typename T >
MathMatrix< N, M, T >::value_type LeftInverse (MathMatrix< N, M, T > &mOut, const MathMatrix< M, N, T > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type LeftInverse (MathMatrix< 1, 1 > &mOut, const MathMatrix< 1, 1 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type LeftInverse (MathMatrix< 2, 2 > &mOut, const MathMatrix< 2, 2 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type LeftInverse (MathMatrix< 3, 3 > &mOut, const MathMatrix< 3, 3 > &m)
 Left-Inverse of a Matrix. More...
 
template<typename T >
MathMatrix< 1, 1, T >::value_type Trace (const MathMatrix< 1, 1, T > &m)
 Trace of a Matrix. More...
 
template<typename T >
MathMatrix< 2, 2, T >::value_type Trace (const MathMatrix< 2, 2, T > &m)
 Trace of a Matrix. More...
 
template<typename T >
MathMatrix< 3, 3, T >::value_type Trace (const MathMatrix< 3, 3, T > &m)
 Trace of a Matrix. More...
 
template<std::size_t fromN, std::size_t toN, typename T >
MathVector< toN, T > MathVectorFrom (const MathVector< fromN, T > &v)
 helper method which creates a vector from another vector of different dimensionality More...
 
template<std::size_t N, typename T >
MathVector< N, T > MathVectorFrom (const MathVector< N, T > &v)
 helper method which creates a vector from another vector of different dimensionality More...
 
bool TriangleCircumcenter (vector2 &centerOut, const vector2 &p1, const vector2 &p2, const vector2 &p3)
 Calculates the circumcenter of a triangle. More...
 
bool TriangleCircumcenter (vector3 &centerOut, const vector3 &p1, const vector3 &p2, const vector3 &p3)
 Calculates the circumcenter of a triangle. More...
 
UG_API bool CreateDirectoryTMP (const char *directory)
 Creates a directory. More...
 
UG_API bool CreateDirectory (const char *directory)
 Creates a directory. More...
 
UG_API bool CreateDirectory (const char *directory, int mode)
 Creates a directory. More...
 
UG_API bool CreateDirectory (std::string directory)
 Creates a directory. More...
 
template<typename TKey >
size_t hash_key (const TKey &key)
 The hashing method can be specialized for different types. More...
 
template<class T >
T * GetDataPtr (std::vector< T > &v)
 Returns a pointer to the array which is managed by the std::vector. More...
 
template<class T >
const T * GetDataPtr (const std::vector< T > &v)
 Returns a pointer to the array which is managed by the std::vector. More...
 
template<typename TMatrix >
void MatAddSlaveRowsToMasterRowOverlap0 (TMatrix &mat)
 changes parallel storage type from additive to consistent More...
 
template<typename TVector >
void AdditiveToConsistent (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to consistent More...
 
template<typename TVector >
void UniqueToConsistent (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from unique to consistent More...
 
template<typename TVector >
void AdditiveToUnique (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 changes parallel storage type from additive to unique More...
 
template<typename TVector >
void SetInterfaceValues (TVector *pVec, const IndexLayout::Interface &interface, typename TVector::value_type val)
 sets the values of a vector to a given number only on the interface indices More...
 
template<typename TVector >
void SetLayoutValues (TVector *pVec, const IndexLayout &layout, typename TVector::value_type val)
 sets the values of a vector to a given number only on the layout indices More...
 
template<typename TVector >
void ScaleLayoutValues (TVector *pVec, const IndexLayout &layout, number scale)
 scales the values of a vector by a given number only on the layout indices More...
 
template<typename TVector >
void ConsistentToUnique (TVector *pVec, const IndexLayout &slaveLayout)
 changes parallel storage type from consistent to unique More...
 
template<typename TVector >
void VecSubtractOnLayout (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 subtracts values of slave layout from master layout and sets slave layouts to negative of difference More...
 
template<typename TVector >
void VecSubtractOneSlaveFromMaster (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 subtracts values of only one slave dof per master on layout More...
 
template<typename TVector >
void VecCopy (TVector *pVec, const IndexLayout &masterLayout, const IndexLayout &slaveLayout, pcl::InterfaceCommunicator< IndexLayout > *pCom=NULL)
 copy a vector only at a layout More...
 
void CommunicateConnections (std::vector< std::vector< int > > &connectionsToProcsOut, std::vector< std::vector< int > > &connectionsToSubDomsOut, IndexLayout &masterLayout, IndexLayout &slaveLayout, int highestReferencedIndex, pcl::IDomainDecompositionInfo &ddinfo)
 fills a connection list, which gives the connected processes to each interface. More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Volume *vol, Face *face, size_t nrFace, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Volume *vol, Edge *edge, size_t nrEdge, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, Face *face, Edge *edge, size_t nrEdge, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
void ComputeOrientationOffset (std::vector< size_t > &vOrientOffset, GridObject *Elem, GridObject *SubElem, size_t nrSub, const LFEID &lfeid)
 returns the orientation offsets if required More...
 
template<typename TDomain >
void LoadDomain (TDomain &domain, const char *filename)
 Loads a domain from a grid-file. More...
 
template<typename TDomain >
void LoadDomain (TDomain &domain, const char *filename, int procId)
 Loads a domain from a grid-file. More...
 
template<int dim>
bool InnerDoFPosition (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 ï¿½ More...
 
template<typename TDomain >
bool InnerDoFPosition (std::vector< MathVector< TDomain::dim > > &vPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 ï¿½ More...
 
template<int dim>
bool DoFPosition (std::vector< MathVector< dim > > &vPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 ï¿½ More...
 
template<typename TDomain >
bool DoFPosition (std::vector< MathVector< TDomain::dim > > &vPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 ï¿½ More...
 
template<int dim>
void ShapesAtGlobalPosition (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< dim > > &vGlobPos, const ReferenceObjectID roid, const std::vector< MathVector< dim > > &vCornerCoord, const LFEID &lfeID)
 
template<typename TDomain >
void ShapesAtGlobalPosition (std::vector< std::vector< number > > &vvShape, const std::vector< MathVector< TDomain::dim > > &vGlobPos, GridObject *elem, const TDomain &domain, const LFEID &lfeID)
 
template<typename TDomain >
void ExtractAlgebraIndices (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd, std::vector< size_t > &fctIndex)
 
template<typename TDomain >
bool CheckDoFPositions (ConstSmartPtr< TDomain > domain, ConstSmartPtr< DoFDistribution > dd)
 
template<typename TFunction >
bool CheckDoFPositions (const TFunction &u)
 
std::ostream & operator<< (std::ostream &out, const LocalDoF &v)
 writes to the output stream More...
 
std::ostream & operator<< (std::ostream &out, const LFEID &v)
 writes the Identifier to the output stream More...
 
LFEID ConvertStringToLFEID (const char *type, int dim, int order)
 returns the LFEID for a combination of Space and order More...
 
LFEID ConvertStringToLFEID (const char *type, int dim)
 returns the LFEID for a combination of Space and order More...
 
bool CheckElementConsistency (MultiGrid &mg, Vertex *v)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
bool CheckElementConsistency (MultiGrid &mg, Edge *e)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
bool CheckElementConsistency (MultiGrid &mg, Face *f)
 Checks whether associated elements and associated constrained/constraining objects are fine. More...
 
std::string ElementDebugInfo (const Grid &grid, GridObject *e)
 Returns a string containing information on the given element. More...
 
template<class TElem >
vector3 GetGridObjectCenter (Grid &g, TElem *elem)
 Returns the center of the given element (SLOW - for debugging only!) More...
 
vector3 GetGridObjectCenter (Grid &g, GridObject *elem)
 Returns the center of the given element (SLOW - for debugging only!) More...
 
template<class vector_t >
void Extrude (Grid &grid, std::vector< Vertex * > *pvVerticesInOut, std::vector< Edge * > *pvEdgesInOut, std::vector< Face * > *pvFacesInOut, const vector_t &direction, uint extrusionOptions=EO_DEFAULT, Attachment< vector_t > &aPos=aPosition, std::vector< Volume * > *pvVolsOut=NULL)
 extrudes geometry and creates new edges, faces and volumes. More...
 
template<class TAAPos >
void Extrude (Grid &grid, std::vector< Vertex *> *pvVerticesInOut, std::vector< Edge *> *pvEdgesInOut, std::vector< Face *> *pvFacesInOut, const typename TAAPos::ValueType &direction, TAAPos aaPos, uint extrusionOptions, std::vector< Volume *> *pvVolsOut)
 extrudes geometry and creates new edges, faces and volumes. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateFaceCenter (Face *f, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a face. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const FaceVertices *f, TVertexPositionAttachmentAccessor &aaPosVRT)
 calculates the center of a face. More...
 
bool CalculateVertexNormals (Grid &grid, Grid::AttachmentAccessor< Vertex, APosition > &aaPos, Grid::AttachmentAccessor< Vertex, ANormal > &aaNorm)
 calculates the normals of all vertices in grid and stores them in aNorm. More...
 
bool CalculateVertexNormals (Grid &grid, APosition &aPos, ANormal &aNorm)
 calculates the normals of all vertices in grid and stores them in aNorm. More...
 
template<int dim, class TVrtIterator >
UG_API void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, Attachment< MathVector< dim > > &aPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<int dim, class TVrtIterator , class TAAPos >
UG_API void RemoveDoubles (Grid &grid, const TVrtIterator &iterBegin, const TVrtIterator &iterEnd, TAAPos aaPos, number threshold)
 merges all vertices that are closer to each other than the specified threshold. More...
 
template<class TVertexPositionAttachmentAccessor >
UG_API TVertexPositionAttachmentAccessor::ValueType CalculateCenter (const Vertex *v, TVertexPositionAttachmentAccessor &aaPosVRT)
 returns the position of the vertex. More...
 
template<class TAAPosVRT , class TAAWeightVRT >
UG_API TAAPosVRT::ValueType CalculateCenter (const Vertex *v, TAAPosVRT &aaPos, TAAWeightVRT &aaWeight)
 returns the position of the vertex. More...
 
bool Tetrahedralize (Grid &grid, number quality=5, bool preserveBnds=false, bool preserveAll=false, APosition &aPos=aPosition, int verbosity=0)
 fills a closed surface-grid with tetrahedrons. More...
 
bool Tetrahedralize (Grid &grid, ISubsetHandler &sh, number quality, bool preserveBnds, bool preserveAll, APosition &aPos, int verbosity)
 fills a closed surface-grid with tetrahedrons. More...
 
void AssignSubsetsByElementType (ISubsetHandler &sh)
 Assigns subset depending on the element type. More...
 
void AssignSubsetsByElementType (ISubsetHandler &sh, GridObjectCollection g)
 Assigns subset depending on the element type. More...
 
template<class TAAPos >
number CalculateVolume (Volume *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Tetrahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Pyramid *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Prism *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Hexahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Octahedron *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (FaceVertices *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (EdgeVertices *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TAAPos >
number CalculateVolume (Vertex *elem, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
template<class TIterator , class TAAPos >
number CalculateVolume (TIterator begin, TIterator end, TAAPos aaPos)
 Calculates the volume of the given element. More...
 
bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, int procId=-1)
 Loads a grid from a file. Position data is written to aPosition. More...
 
bool LoadGridFromFile (Grid &grid, const char *filename, int procId)
 Loads a grid from a file. Position data is written to aPosition. More...
 
bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename)
 Saves a grid to a file. Position data is read from aPosition. More...
 
bool SaveGridToFile (Grid &grid, const char *filename)
 Saves a grid to a file. Position data is read from aPosition. More...
 
template<class TAPos >
UG_API bool LoadGridFromFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos, int procId=-1)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
UG_API bool LoadGridFromFile (Grid &grid, const char *filename, TAPos &aPos, int procId=-1)
 Loads a grid from a file. Position data is written to the specified attachment. More...
 
template<class TAPos >
UG_API bool SaveGridToFile (Grid &grid, ISubsetHandler &sh, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
template<class TAPos >
UG_API bool SaveGridToFile (Grid &grid, const char *filename, TAPos &aPos)
 Saves a grid to a file. Position data is read from the specified attachment. More...
 
void CollectVertices (std::vector< Vertex *> &vVertexOut, Grid &grid, Vertex *v, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex *> &vVertexOut, Grid &grid, Vertex *v, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex *> &vVertexOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex *> &vVertexOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex *> &vVertexOut, Grid &grid, Face *f, bool clearContainer)
 Collects all vertices. More...
 
UG_API void CollectAssociated (std::vector< Vertex *> &vVertexOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectVertices (std::vector< Vertex *> &vVertexOut, Grid &grid, Volume *v, bool clearContainer)
 Collects all vertices. More...
 
void CollectAssociated (std::vector< Vertex *> &vVertexOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all vertices. More...
 
void CollectEdges (std::vector< Edge *> &vEdgesOut, Grid &grid, Vertex *vrt, bool clearContainer)
 Collects all edges which exist in the given grid and which are part of the given vertex. More...
 
void CollectAssociated (std::vector< Edge *> &vEdgesOut, Grid &grid, Vertex *vrt, bool clearContainer=true)
 Collects all edges which exist in the given grid and which are part of the given vertex. More...
 
void CollectFaces (std::vector< Face *> &vFacesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all faces that exist in the given grid which contain the given edge. More...
 
void CollectAssociated (std::vector< Face *> &vFacesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all faces that exist in the given grid which contain the given edge. More...
 
void CollectVolumes (std::vector< Volume *> &vVolumesOut, Grid &grid, Edge *e, bool clearContainer)
 Collects all volumes that exist in the given grid which contain the given edge. More...
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given edge. More...
 
void CollectVolumes (std::vector< Volume *> &vVolumesOut, Grid &grid, Face *f, bool clearContainer, bool ignoreAssociatedVolumes)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectVolumes (std::vector< Volume *> &vVolumesOut, Grid &grid, FaceDescriptor &fd, bool clearContainer)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, Face *f, bool clearContainer=true, bool ignoreAssociatedVolumes=false)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
void CollectAssociated (std::vector< Volume *> &vVolumesOut, Grid &grid, FaceDescriptor &fd, bool clearContainer=true)
 Collects all volumes that exist in the given grid which contain the given face. More...
 
size_t NumVertices (Vertex *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Edge *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Face *elem)
 Returns the number of vertices of the given geometric object. More...
 
size_t NumVertices (Volume *elem)
 Returns the number of vertices of the given geometric object. More...
 
UG_API void CollectEdges (std::vector< Edge *> &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge. More...
 
void CollectAssociated (std::vector< Edge *> &vEdgesOut, Grid &grid, Edge *e, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given edge. More...
 
UG_API void CollectEdges (std::vector< Edge *> &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face. More...
 
void CollectAssociated (std::vector< Edge *> &vEdgesOut, Grid &grid, Face *f, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given face. More...
 
UG_API void CollectEdges (std::vector< Edge *> &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
void CollectAssociated (std::vector< Edge *> &vEdgesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all edges that exist in the given grid are part of the given volume. More...
 
UG_API void CollectFaces (std::vector< Face *> &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all faces that exist in the given grid are part of the given volume. More...
 
void CollectAssociated (std::vector< Face *> &vFacesOut, Grid &grid, Volume *v, bool clearContainer=true)
 Collects all faces that exist in the given grid are part of the given volume. More...
 

Variables

AGeomObjID aGeomObjID
 This attachment instance should be used to store global ids. More...
 
size_t allocated = 0
 
ANormal aNormal ("normal", true)
 The standard 3d normal type. More...
 
APosition aPosition ("position", true)
 The standard 3d position type. More...
 
APosition1 aPosition1 ("position2", true)
 The standard 1d position type. More...
 
APosition2 aPosition2 ("position2", true)
 The standard 2d position type. More...
 
DebugID APP
 
bool bMemTracker =false
 
const int BOXPRIORITYQUEUE2_MAXIMAL_VALUE = 500
 maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()). More...
 
const int BOXPRIORITYQUEUE_MAXIMAL_VALUE = 500
 maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()). More...
 
std::vector< ProfileCall > callsOnHold
 
const unsigned int cost_del = 1
 
const unsigned int cost_ins = 1
 
const unsigned int cost_sub = 1
 
DebugID DBG_COLORING ("ParallelColoring")
 
DebugID DBG_MATRIX_OVERLAP ("Algebra.MatrixOverlap")
 
DebugID DID_CUDA ("CUDA")
 
DebugID DID_DATA_EVALUATOR ("DATA_EVALUATOR")
 
DebugID DID_ELEM_DISC_ASSEMBLE_UTIL ("ELEM_DISC_ASSEMBLE_UTIL")
 
DebugID DID_FV1_GEOM ("FV1_GEOM")
 
DebugID DID_LOCAL_FINITE_ELEMENT_PROVIDER ("LOCAL_FINITE_ELEMENT_PROVIDER")
 
DebugID DID_LUACOMPILER ("LUACompiler")
 
DebugID DID_REFERENCE_MAPPING
 
DebugID DID_REFERENCE_MAPPING_GLOB_TO_LOC
 
bool g_bNoNANCheck = true
 
static GlobalBoundaryRefinementRule g_boundaryRefinementRule = LINEAR
 global boundary refinement rule information switching between linear and subdivision Loop refinement More...
 
size_t g_minSecondUntilProgress = 3
 
int g_ShinyCallLoggingMaxFreq = 1
 
static DebugID LG_DIST ("LG_DIST")
 
DebugID LIB_ALG_AMG
 
DebugID LIB_ALG_LINEAR_OPERATOR
 
DebugID LIB_ALG_LINEAR_SOLVER
 
DebugID LIB_ALG_MATRIX
 
DebugID LIB_ALG_VECTOR
 
DebugID LIB_DISC
 
DebugID LIB_DISC_ASSEMBLE
 
DebugID LIB_DISC_D3F
 
DebugID LIB_DISC_DISCRETE_FUNCTION
 
DebugID LIB_DISC_LINKER
 
DebugID LIB_DISC_MULTIGRID
 
DebugID LIB_DISC_NEWTON
 
DebugID LIB_DISC_OPERATOR_INVERSE
 
DebugID LIB_DISC_OUTPUT
 
DebugID LIB_DISC_TRANSFER
 
DebugID LIB_GRID
 
DebugID LIB_GRID_REFINER
 
DebugID LIB_PCL
 
DebugID MAIN
 
const int MAX_FACE_VERTICES = 4
 constant that defines the maximal number of vertices per face. More...
 
const int MAX_VOLUME_VERTICES = 8
 constant that defines the maximal number of vertices per volume element. More...
 
static const size_t MAXBLOCKSIZE = 53
 
MemTrackerMap memTracker
 
const int MG_EDGE_MAX_EDGE_CHILDREN = 2
 maximal number of edges that can be children of an edge. More...
 
const int MG_FACE_MAX_EDGE_CHILDREN = 4
 maximal number of edges that can be children of a face. More...
 
const int MG_FACE_MAX_FACE_CHILDREN = 4
 maximal number of faces that can be children of a face. More...
 
const number PI = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899
 
std::vector< ProfileCall > profileCalls
 
static bool s_abortRun = false
 
DebugID SchurDebug ("SchurComplementDebug")
 
map< const Shiny::ProfileNode *, size_t > selfmem
 
static const char shiftCharacters [] = "|#[+"
 
static const size_t shiftCharactersLength = sizeof(shiftCharacters)/sizeof(shiftCharacters[0])
 
const number SMALL = 1.0e-12
 
const number SMALL_SQ = SMALL * SMALL
 
map< const Shiny::ProfileNode *, size_t > totalmem
 
static std::string UG_AUTHORS ="Sebastian Reiter, Martin Rupp, Andreas Vogel, et al."
 
static std::string UG_BINARY_LICENSE
 
const char * UG_BUILD_HOST
 
const char * UG_COMPILE_DATE
 
const char * UG_SVN_REVISION
 
const int ugRefObjIdToVTKCellType []
 
const uint64 UNIT_EXA = UNIT_PETA * 1024ll
 
const uint64 UNIT_EXA_SI = UNIT_PETA_SI * 1000ll
 
const uint64 UNIT_GIGA = UNIT_MEGA * 1024
 
const uint64 UNIT_GIGA_SI = UNIT_MEGA_SI * 1000
 
const uint64 UNIT_KILO = 1024
 
const uint64 UNIT_KILO_SI = 1000
 
const uint64 UNIT_MEGA = UNIT_KILO * 1024
 
const uint64 UNIT_MEGA_SI = UNIT_KILO_SI * 1000
 
const uint64 UNIT_PETA = UNIT_TERA * 1024ll
 
const uint64 UNIT_PETA_SI = UNIT_TERA_SI * 1000ll
 
const uint64 UNIT_TERA = UNIT_GIGA * 1024ll
 
const uint64 UNIT_TERA_SI = UNIT_GIGA_SI * 1000ll
 
bool useLua2VM =false
 
bool useLuaCompiler =false
 
const char * VTKCellNames []
 
typedef SmartPtr< PartitionMapSPPartitionMap
 Save the partition map to a file. More...
 
template<class TAPos >
bool SavePartitionMapToFile (PartitionMap &pm, const char *filename, TAPos &aPos)
 Save the partition map to a file. More...
 

Detailed Description

the ug namespace

D = MatrixDiagonal(mat) creates a LinearOperator which acts like D = diag(mat)

This structure is a helper structure to end an boost::mpl::list

boost::mpl::list<int, double, char, end_boost_list>

is the same as

boost::mpl::list<int, double, char>

This comes in handy when you are using defines to enable/disable parts of the list:

boost::mpl::list<
#ifdef USE_INT
int,
#endif
#ifdef USE_DOUBLE
double,
#endif
#ifdef USE_CHAR
char,
#endif
end_boost_list
>

Without end_boost_list, we would need to add some other #ifdefs because of the extra Comma , at the end (imagine only USE_INT is defined).

you can use that list now as normal: static const bool isEmpty = boost::mpl::empty<List>::value; typename boost::mpl::if_c<isEmpty, ListProcessEnd, ListProcessNext>::type (reg,grp);

Here's an example on how to use the class:

#include "common/util/string_table_stream.h"
...
ug::StringTableStream sts;
sts << "|" << 31.3 << ", " << 0 << "|\n";
sts << "|" << 0 << ", " << 768 << "|\n";
std::cout << table;

And this is what the output looks like:

 | 31.3 , 0   |
 | 0    , 768 |
* 

This class uses internally StringTable.

See also
StringTable, Table

Namespace for ug

Typedef Documentation

§ ABool

typedef Attachment<bool> ug::ABool

§ AByte

§ AChar

typedef Attachment<char> ug::AChar

§ ADistInfo

§ ADouble

typedef Attachment<double> ug::ADouble

§ AEdge

§ AFace

§ AFloat

typedef Attachment<float> ug::AFloat

§ AInt

typedef Attachment<int> ug::AInt

§ AlgebraIDHashList

§ AlgebraIDVec

typedef std::vector<AlgebraID> ug::AlgebraIDVec

§ ANormal

§ ANormal2

§ ANormal3

§ ANumber

§ APosition

§ APosition1

§ APosition2

§ APosition3

§ ATexCoord

§ AUInt

§ AVector1

§ AVector2

§ AVector3

§ AVector4

§ AVertex

§ AVolume

§ ConstConstrainedEdgeIterator

§ ConstConstrainedQuadrilateralIterator

§ ConstConstrainedTriangleIterator

§ ConstConstrainedVertexIterator

§ ConstConstrainingEdgeIterator

§ ConstConstrainingQuadrilateralIterator

§ ConstConstrainingTriangleIterator

§ ConstEdgeIterator

§ ConstFaceIterator

§ ConstHexahedronIterator

§ ConstOctahedronIterator

§ ConstPrismIterator

typedef geometry_traits<Prism>::const_iterator ug::ConstPrismIterator

§ ConstPyramidIterator

§ ConstQuadrilateralIterator

§ ConstrainedEdgeIterator

§ ConstrainedQuadrilateralIterator

§ ConstrainedTriangleIterator

§ ConstrainedVertexIterator

§ ConstrainingEdgeIterator

§ ConstrainingQuadrilateralIterator

§ ConstrainingTriangleIterator

§ ConstRegularEdgeIterator

§ ConstRegularVertexIterator

§ ConstSPProcessHierarchy

§ ConstTetrahedronIterator

§ ConstTriangleIterator

§ ConstVertexIterator

§ ConstVolumeIterator

§ DoFIndex

type of DoF-Index used to identify an DoF in the Algebra

§ EdgeElementStorage

§ EdgeIterator

§ EdgeLayout

§ EdgeSelector

§ FaceElementStorage

§ FaceIterator

§ FaceLayout

§ FaceSelector

§ GlobalLayout

typedef std::map<int, std::vector<AlgebraID> > ug::GlobalLayout

§ HexahedronIterator

§ IGeometry1d

§ IGeometry2d

§ IGeometry3d

§ lapack_double

typedef double ug::lapack_double

§ lapack_float

typedef float ug::lapack_float

§ lapack_ftnlen

typedef int ug::lapack_ftnlen

§ lapack_int

typedef int ug::lapack_int

§ MapEdgeCuts

typedef multimap<number, SweepLineEdge*> ug::MapEdgeCuts

§ MemTrackerMap

typedef map<void *, MemTrackerStruct> ug::MemTrackerMap

§ MGSubsetHandler

§ OctahedronIterator

§ ParameterList

typedef vector<string> ug::ParameterList

§ ParentInfo

typedef std::pair<byte, int> ug::ParentInfo

Stores a tuple (type, index), identifying a parent.

§ PrismIterator

§ ProjectorTypes

§ PyramidIterator

§ QuadrilateralIterator

§ RegularEdgeIterator

§ RegularVertexIterator

§ SPElementCallback

§ SPIGeometry1d

§ SPIGeometry2d

§ SPIGeometry3d

§ SPMGHNodeAdjuster

§ SPParallelHNodeAdjuster

§ SPPartitionMap

Save the partition map to a file.

The resulting file will contain the grid on which the partition-map operates, together with subsets, each representing the process on which the subset will be sent.

Todo:
currently only the .ugx format is supported.

§ SPProcessHierarchy

§ SPProjectionHandler

§ SPRasterLayerDesc

§ SPRefinementProjector

§ SPStdHNodeAdjuster

§ SubsetHandler

§ SweepLineEdgeIter

typedef SweepLineEdgeList::iterator ug::SweepLineEdgeIter

§ SweepLineEdgeList

§ TetrahedronIterator

§ TriangleIterator

§ VertexElementStorage

§ VertexIterator

This Iterator will be used as base-class for iterators of specialized geometric objects.

§ VertexLayout

§ VertexSelector

§ VolumeElementStorage

§ VolumeIterator

§ VolumeLayout

§ VolumeSelector

§ VTKFileWriter

Enumeration Type Documentation

§ anonymous enum

anonymous enum

abbreviations for return types

Enumerator
DIM_SUBSET_EMPTY_GRID 

§ ATTACHMENT_CONSTANTS

Enumerator
INVALID_ATTACHMENT_INDEX 

§ ConstraintType

Types of constraint.

These types control the order the constraints are applied in. Constraints with a lower number will be applied first. The order of constraints with equal number is undefined.

Enumerator
CT_NONE 
CT_MAY_DEPEND_ON_HANGING 
CT_HANGING 
CT_CONSTRAINTS 
CT_DIRICHLET 
CT_ALL 

§ ConstraintTypes

Enumerator
CT_NONE 
CT_CONSTRAINING 
CT_CONSTRAINED 

§ DiscPart

Enumerator
NONE 
MASS 
STIFF 
RHS 
EXPL 
MAX_PART 

§ EdgeContainerSections

These numbers define where in the edge-section-container an edge will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSEDGE_NONE 
CSEDGE_REGULAR_EDGE 
CSEDGE_CONSTRAINED_EDGE 
CSEDGE_CONSTRAINING_EDGE 

§ ElemDiscType

Types of elem disc.

Enumerator
EDT_NONE 
EDT_ELEM 
EDT_SIDE 
EDT_BND 
EDT_ALL 

§ eMatrixOrdering

Use eMatrixOrdering to indicate if in a two-dimensional array RowMajor: each row is stored consecutively in memory, or ColMajor: each col is stored consecutively in memory.

See also
http://en.wikipedia.org/wiki/Row-major_order .
Enumerator
RowMajor 
ColMajor 

§ eTransposeMode

Enumerator
ModeNoTrans 
ModeTranspose 
ModeConjTranspose 

§ FaceContainerSections

These numbers define where in the face-section-container a face will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSFACE_NONE 
CSFACE_TRIANGLE 
CSFACE_QUADRILATERAL 
CSFACE_CONSTRAINED_TRIANGLE 
CSFACE_CONSTRAINED_QUADRILATERAL 
CSFACE_CONSTRAINING_TRIANGLE 
CSFACE_CONSTRAINING_QUADRILATERAL 
CSFACE_USER 

§ GlobalBoundaryRefinementRule

identification of boundary refinement rule to be used

Enumerator
LINEAR 
SUBDIV_SURF_LOOP_SCHEME 
SUBDIV_SURF_AVERAGING_SCHEME 
SUBDIV_VOL 

§ GridBaseObjectId

enumeration of the GridBaseObjects that make up a grid.

Enumerator
VERTEX 
EDGE 
FACE 
VOLUME 
NUM_GEOMETRIC_BASE_OBJECTS 

§ GridHeaderConstants

Enumerator
GHC_HEADER_BEGIN 
GHC_HEADER_END 
GHC_READ_OPTIONS 

§ GridHeaderReadOptions

Enumerator
GHRO_READ_DEFAULT 
GHRO_READ_LEVELS 
GHRO_READ_PARENTS 

§ GridMessageAdaptionType

constants which indicate the adaption type in a grid refinement message.

Enumerator
GMAT_UNKNOWN 
GMAT_GLOBAL_ADAPTION_BEGINS 
GMAT_HNODE_ADAPTION_BEGINS 
GMAT_GLOBAL_ADAPTION_ENDS 
GMAT_HNODE_ADAPTION_ENDS 
GMAT_GLOBAL_REFINEMENT_BEGINS 
GMAT_HNODE_REFINEMENT_BEGINS 
GMAT_GLOBAL_REFINEMENT_ENDS 
GMAT_HNODE_REFINEMENT_ENDS 
GMAT_GLOBAL_COARSENING_BEGINS 
GMAT_HNODE_COARSENING_BEGINS 
GMAT_GLOBAL_COARSENING_ENDS 
GMAT_HNODE_COARSENING_ENDS 

§ GridMessageCreationType

Instances of this class inform about grid creation (e.g. during load or distribution)

Enumerator
GMCT_NONE 
GMCT_CREATION_STARTS 
GMCT_CREATION_STOPS 

§ GridMessageDistributionType

Instances of this class inform about distribution.

Enumerator
GMDT_NONE 
GMDT_DISTRIBUTION_STARTS 
GMDT_DISTRIBUTION_STOPS 

§ GridMessageMultiGridChangedType

Enumerator
GMMGCT_LEVEL_ADDED 
GMMGCT_REMOVED 

§ GridObjectID

Enumerator
GOID_VERTEX 
GOID_EDGE 
GOID_TRIANGLE 
GOID_QUADRILATERAL 
GOID_TETRAHEDRON 
GOID_PYRAMID 
GOID_PRISM 
GOID_OCTAHEDRON 
GOID_HEXAHEDRON 
GOID_NUM_GRID_OBJECT_IDS 

§ GridSerializationID

Don't change the constants, since they are used i.e. in external files too. If you want to add constants, do so at the end of the enumeration.

Enumerator
GSID_END_OF_GRID 
GSID_INVALID 
GSID_GEOMETRIC_OBJECT 
GSID_VERTEX_BASE 
GSID_VERTEX 
GSID_HANGING_VERTEX 
GSID_EDGE_BASE 
GSID_EDGE 
GSID_CONSTRAINED_EDGE 
GSID_CONSTRAINING_EDGE 
GSID_FACE 
GSID_TRIANGLE 
GSID_CONSTRAINED_TRIANGLE 
GSID_CONSTRAINING_TRIANGLE 
GSID_QUADRILATERAL 
GSID_CONSTRAINED_QUADRILATERAL 
GSID_CONSTRAINING_QUADRILATERAL 
GSID_VOLUME 
GSID_TETRAHEDRON 
GSID_HEXAHEDRON 
GSID_PRISM 
GSID_PYRAMID 
GSID_OCTAHEDRON 
GSID_NEW_LEVEL 

§ InterfaceNodeTypes

The types of interface-entries. INT_H_MASTER and INT_H_SLAVE describe (horizontal) connections between nodes on one level in a grid-hierarchy. They are used to communicate data between neighbours.

INT_V_MASTER and INT_V_SLAVE describe (vertical) connections between nodes on different levels of a grid. They are used to communicate data between parents and children. They are only used for multigrids.

Note that the type parameter in DistributionInterfaceEntry is currently restricted to 4 bytes only!

developer note: Introducing INT_HORIZONTAL, INT_VERTICAL, INT_MASTER, INT_SLAVE and building or combinations of those would not make sense! Think about INT_H_MASTER | INT_V_SLAVE in this case (it would not be clear whether the master was in the H or in the V interface).

Enumerator
INT_NONE 
INT_H_MASTER 

horizontal master node

INT_H_SLAVE 

horizontal slave node

INT_V_MASTER 

vertical master node

INT_V_SLAVE 

vertical slave node

§ InterfaceStates

Enumerator
IS_UNASSIGNED 
IS_NORMAL 
IS_VMASTER 
IS_VSLAVE 
IS_DUMMY 
HAS_PARENT 

§ KDTreeSplitStrategy

Enumerator
KDTSS_CIRCULAR 
KDTSS_LARGEST 

§ LGBConstants

Enumerator
LGBC_NONE 
LGBC_POS2D 
LGBC_POS3D 
LGBC_SUBSET_HANDLER 

§ matrix_algebra_type

Enumerator
MATRIX_USE_ROW_FUNCTIONS 
MATRIX_USE_GLOBAL_FUNCTIONS 
MATRIX_USE_OPERATORS 
MATRIX_USE_MEMBER_FUNCTIONS 

§ ObserverType

Enumerator
OT_NONE 
OT_GRID_OBSERVER 
OT_VERTEX_OBSERVER 
OT_EDGE_OBSERVER 
OT_FACE_OBSERVER 
OT_VOLUME_OBSERVER 
OT_FULL_OBSERVER 

§ ProcessType

Enumerator
PT_ALL 
PT_STATIONARY 
PT_INSTATIONARY 
MAX_PROCESS 

§ ReferenceObjectID

these ids are used to identify the shape of a geometric object.

Enumerator
ROID_UNKNOWN 
ROID_VERTEX 
ROID_EDGE 
ROID_TRIANGLE 
ROID_QUADRILATERAL 
ROID_TETRAHEDRON 
ROID_HEXAHEDRON 
ROID_PRISM 
ROID_PYRAMID 
ROID_OCTAHEDRON 
NUM_REFERENCE_OBJECTS 

§ slice_desc_type

Enumerator
SD_INNER 
SD_SKELETON 
SLICE_DESC_SIZE 

§ SweepLineEdgeStatus

Enumerator
SLES_UNKNOWN 
SLES_RIM 

§ SweepLineVertexStatus

Enumerator
SLVS_NONE 
SLVS_START 
SLVS_END 
SLVS_REGULAR 
SLVS_SPLIT 
SLVS_MERGE 

§ TraversalStates

Enumerator
DONT_TRAVERSE_CHILDREN 
TRAVERSE_CHILDREN 
ABORT_TRAVERSAL 

§ VertexContainerSections

These numbers define where in the vertex-section-container a vertex will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSVRT_NONE 
CSVRT_REGULAR_VERTEX 
CSVRT_CONSTRAINED_VERTEX 

§ VolumeContainerSections

These numbers define where in the volume-section-container a volume will be stored.

The order of the constants must not be changed! Algorithms may exist that rely on it.

Enumerator
CSVOL_NONE 
CSVOL_TETRAHEDRON 
CSVOL_HEXAHEDRON 
CSVOL_PRISM 
CSVOL_PYRAMID 
CSVOL_OCTAHEDRON 

§ VTKCellTypes

Enumerator
VTK_VERTEX 
VTK_POLY_VERTEX 
VTK_LINE 
VTK_POLY_LINE 
VTK_TRIANGLE 
VTK_TRIANGLE_STRIP 
VTK_POLYGON 
VTK_PIXEL 
VTK_QUAD 
VTK_TETRA 
VTK_VOXEL 
VTK_HEXAHEDRON 
VTK_WEDGE 
VTK_PYRAMID 
VTK_QUADRATIC_EDGE 
VTK_QUADRATIC_TRIANGLE 
VTK_QUADRATIC_QUAD 
VTK_QUADRATIC_TETRA 
VTK_QUADRATIC_HEXAHEDRON 
VTK_NUM_TYPES 

Function Documentation

§ AbortRun()

UG_API void ug::AbortRun ( )

sets a flag, that the current run shall be aborted during the next call of TerminateAbortedRun()

Referenced by ug::bridge::RegisterBridge_Misc().

§ absCompare()

bool ug::absCompare ( double  a,
double  b 
)
inline

§ AddAllFromInterface()

void ug::AddAllFromInterface ( std::set< size_t > &  s,
const IndexLayout::Interface interface 
)
Parameters
marka set to which all indices from the interface are added
layout

Referenced by AddAllFromLayout(), and MarkAllFromLayout().

§ AddAllFromLayout()

void ug::AddAllFromLayout ( std::set< size_t > &  s,
const IndexLayout layout 
)
Parameters
marka set to which all indices from the interface are added
layout

References AddAllFromInterface(), pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), and pcl::SingleLevelLayout< TInterface >::interface().

Referenced by MarkAllFromLayout().

§ AddConnectionsBetweenSlaves()

void ug::AddConnectionsBetweenSlaves ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
IndexLayout masterLayout,
IndexLayout slaveLayout,
IndexLayout allToAllSend,
IndexLayout allToAllReceive 
)

adds connections between slave nodes to the interfaces/layouts when a master node has 2 slave nodes, this function adds a connection between these nodes

Parameters
communicatorused InterfaceCommunicator
masterLayoutmaster layout
slaveLayoutslave layout
allToAllSendlayout with slave-slave connections at the end of this function
allToAllReceivelayout with slave-slave connections at the end of this function

since we have slave->slave and slave<-slave connections, indices added to layouts are always added to allToAllSend AND allToAllReceive.

Note
this function ONLY adds slave-slave connections. if you need master->slave connections, try AddLayout(allToAllSend, masterLayout); AddLayout(allToAllReceive, slaveLayout); for slave->master AddLayout(allToAllSend, slaveLayout); AddLayout(allToAllReceive, masterLayout);
because the order in the interfaces is important, this function is more complicate that one would expect.

References pcl::SingleLevelLayout< TInterface >::begin(), ug::BinaryBuffer::buffer(), pcl::InterfaceCommunicator< TLayout >::communicate(), CommunicateConnections(), Deserialize(), pcl::SingleLevelLayout< TInterface >::end(), ug::BinaryBuffer::eof(), pcl::SingleLevelLayout< TInterface >::interface(), pcl::SingleLevelLayout< TInterface >::proc_id(), pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::OrderedInterface< TType, TContainer, TAlloc >::push_back(), pcl::InterfaceCommunicator< TLayout >::receive_raw(), pcl::InterfaceCommunicator< TLayout >::send_raw(), Serialize(), UG_ASSERT, and ug::BinaryBuffer::write_pos().

Referenced by CreateAllToAllFromMasterSlave().

§ AddEntriesToIndexLayout_DomainDecomposition()

template<class TLayout >
bool ug::AddEntriesToIndexLayout_DomainDecomposition ( IndexLayout processLayoutOut,
IndexLayout subdomainLayoutOut,
DoFDistribution dofDistr,
TLayout &  elemLayout,
pcl::IDomainDecompositionInfo ddInfoIn 
)

§ AddEntriesToLevelIndexLayout()

template<class TLayout >
bool ug::AddEntriesToLevelIndexLayout ( IndexLayout indexLayoutOut,
DoFDistribution dofDistr,
TLayout &  elemLayout,
const std::map< int, std::vector< bool > > *  pIgnoreMap = NULL 
)

§ AddEntriesToSurfaceIndexLayout()

template<class TLayout >
bool ug::AddEntriesToSurfaceIndexLayout ( IndexLayout indexLayoutOut,
DoFDistribution dofDistr,
TLayout &  elemLayout,
MultiGrid mg,
DistributedGridManager dGrMgr 
)

§ AddExtraProcessEntriesToSubdomainLayout()

§ AddGlobalAttachmentsToSerializer()

template<class TElem >
static void ug::AddGlobalAttachmentsToSerializer ( GridDataSerializationHandler handler,
Grid grid 
)
static

Adds serializers for all registered global attachments.

Make sure that the same global attachments are attached to the given grid on all processes before calling this method. Use 'SynchronizeAttachedGlobalAttachments' to achieve this.

§ AddIfUnique()

void ug::AddIfUnique ( IndexLayout::Interface interface,
size_t  i 
)
inline

§ AddLayoutFromGlobalLayout()

template<typename TGlobalToLocal >
void ug::AddLayoutFromGlobalLayout ( IndexLayout layout,
GlobalLayout globalLayout,
TGlobalToLocal &  globalToLocal,
bool  bRemoveDoubles = true 
)

References PROFILE_FUNC.

Referenced by CreateLayoutFromGlobalLayout().

§ AddLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::AddLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat 
)
inline

Add a local matrix

The local matrix type must declare the following members:

Referenced by AddLocalMatrix(), and SetLocalMatrix().

§ AddLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::AddLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References AddLocalMatrix().

§ AddLocalMatrixToGlobal()

§ AddLocalVector()

§ AddMult() [1/7]

template<typename A , typename B , typename C >
void ug::AddMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References AddMult(), and UG_ASSERT.

§ AddMult() [2/7]

void ug::AddMult ( number dest,
const number b,
const number vec 
)
inline

§ AddMult() [3/7]

template<typename A , typename B , typename C >
void ug::AddMult ( DenseMatrix< A > &  dest,
const DenseMatrix< B > &  mA,
const DenseMatrix< C > &  mB 
)
inline

References AddMult(), and UG_ASSERT.

§ AddMult() [4/7]

template<typename A , typename B , typename C >
void ug::AddMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

§ AddMult() [5/7]

template<typename A , typename B >
void ug::AddMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References AddMult(), and alpha.

§ AddMult() [6/7]

template<typename A , typename B >
void ug::AddMult ( DenseVector< A > &  dest,
const double &  b,
const A &  vec 
)
inline

References AddMult().

§ AddMult() [7/7]

template<typename A >
void ug::AddMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References AddMult().

§ AddTargetProcToDistInfos()

template<class TElem >
static void ug::AddTargetProcToDistInfos ( MGSelector msel,
DistInfoSupplier distInfos,
int  targetProc 
)
static

§ AdjustMeanValue() [1/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::vector< std::string > &  vCmp,
number  mean 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions), shifted by the value of 'mean', from all the DoFs of this grid function. Typically, it should result in a grid function with the average equal to 'mean'.

Remarks
Note that mean is not the desired average but the one multiplied by the area of the domain.
Template Parameters
TGridFunctiontype of the grid function
Parameters
spGFthe grid function
vCmpthe component to adjust the average for
meanthe desired mean value

References EDGE, FACE, Integral(), SmartPtr< T, FreePolicy >::invalid(), ug::FunctionPattern::lfeid(), ug::DoFDistributionInfo::max_fct_dofs(), ug::LFEID::order(), PROFILE_FUNC_GROUP, UG_THROW, VERTEX, and VOLUME.

Referenced by AdjustMeanValue(), ug::AverageComponent< TDomain, TAlgebra >::post_process(), and SubtractValueFromComponent().

§ AdjustMeanValue() [2/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::vector< std::string > &  vCmp 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions) from all the DoFs of this grid function. Typically, it should result in a grid function with the zero average.

Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue().

§ AdjustMeanValue() [3/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::string &  fcts 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions) from all the DoFs of this grid function. Typically, it should result in a grid function with the zero average.

Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue(), and TokenizeTrimString().

§ AdjustMeanValue() [4/4]

template<typename TGridFunction >
void ug::AdjustMeanValue ( SmartPtr< TGridFunction >  spGF,
const std::string &  fcts,
number  mean 
)

Subtracts the average of a given grid function (computed by taking into account the shape functions), shifted by the value of 'mean', from all the DoFs of this grid function. Typically, it should result in a grid function with the average equal to 'mean'.

Remarks
Note that mean is not the desired average but the one multiplied by the area of the domain.
Template Parameters
TGridFunctiontype of the grid function

References AdjustMeanValue(), SumGFValuesAt(), and TokenizeTrimString().

§ AdjustSelection()

static void ug::AdjustSelection ( Grid grid,
Selector sel 
)
static

§ aGeomObjID()

AGeomObjID ug::aGeomObjID ( "globalID"  ,
false   
)

§ APP()

DebugID ug::APP ( "APP"  )

§ AppendCounterToString()

void ug::AppendCounterToString ( string &  str,
string  indicator,
int  counter,
int  maxCounter 
)

§ AppendInterface()

template<typename TLayout >
bool ug::AppendInterface ( TLayout &  layout,
int  pidSource,
int  pidAppendTo 
)

References find().

Referenced by MergeInterfaces().

§ AppendSpacesToString()

string ug::AppendSpacesToString ( string &  str,
int  totalLength 
)

§ ApplyLinearSolver()

template<typename vector_type >
bool ug::ApplyLinearSolver ( SmartPtr< ILinearOperator< vector_type > >  A,
vector_type &  u,
vector_type &  b,
SmartPtr< ILinearOperatorInverse< vector_type > >  solver 
)

§ ApplySmoothManifoldPosToTopLevelAveragingScheme()

void ug::ApplySmoothManifoldPosToTopLevelAveragingScheme ( MultiGrid mg,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH 
)

Toplevel vertex repositioning function for subdivision surfaces refinement (Averaging scheme)

This function repositions all toplevel manifold vertices to their smoothed positions determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosreference to aSmoothBndPos
aNumManifoldFacesreference to aNumManifoldFaces

References aPosition, ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumManifoldFacesVertexAttachmentInTopLevel(), CalculateSmoothManifoldPosInTopLevelAveragingScheme(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::top_level(), UG_THROW, and VecScale().

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

§ ApplySmoothManifoldPosToTopLevelLoopScheme()

void ug::ApplySmoothManifoldPosToTopLevelLoopScheme ( MultiGrid mg,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH 
)

Toplevel vertex repositioning function for subdivision surfaces refinement (by C. Loop, 1987)

This function repositions all toplevel manifold vertices to their smoothed positions determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosEvenVrtreference to aSmoothBndPosEvenVrt
aSmoothBndPosOddVrtreference to aSmoothBndPosOddVrt

References aPosition, ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumManifoldEdgesVertexAttachmentInParentLevel(), CalculateSmoothManifoldPosInParentLevelLoopScheme(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::MultiGrid::get_parent(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::num_levels(), ug::GridObject::reference_object_id(), ROID_EDGE, ROID_VERTEX, ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

§ ApplySmoothSubdivisionSurfacesToTopLevel()

void ug::ApplySmoothSubdivisionSurfacesToTopLevel ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets 
)

Function to create a smooth subdivision volumes hierarchy.

This function transforms a linearly refined hybrid tetra-/octahedral volume grid hierarchy into a hierarchy with smoothed boundary manifold (s. Schaefer et al, "Smooth subdivision of tetrahedral meshes", 2004)

Parameters
mgreference to MultiGrid
shreference to standard SubsetHandler
markSHreference to SubsetHandler containing marked (inner) boundary manifold
linearManifoldSubsetsuser-specified linearManifoldSubsets

References ApplySmoothManifoldPosToTopLevelAveragingScheme(), ApplySmoothManifoldPosToTopLevelLoopScheme(), InitLinearManifoldSubsetHandler(), LINEAR, ug::MultiGrid::num_levels(), PROFILE_FUNC_GROUP, SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_VOL, and UG_THROW.

Referenced by ug::bridge::Refinement::Functionality::Common().

§ ApplySmoothSubdivisionVolumesToTopLevel()

void ug::ApplySmoothSubdivisionVolumesToTopLevel ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler markSH,
const char *  linearManifoldSubsets 
)

Function to create a smooth subdivision volumes hierarchy.

This function transforms a linearly refined hybrid tetra-/octahedral volume grid hierarchy into a smoothed subdivision volumes hierarchy (s. Schaefer et al, "Smooth subdivision of tetrahedral meshes", 2004)

Parameters
mgreference to MultiGrid
shreference to standard SubsetHandler
markSHreference to SubsetHandler containing marked (inner) boundary manifold
linearManifoldSubsetsuser-specified linearManifoldSubsets

References ApplySmoothManifoldPosToTopLevelAveragingScheme(), ApplySmoothManifoldPosToTopLevelLoopScheme(), ApplySmoothVolumePosToTopLevel(), ug::tet_rules::GetRefinementRule(), ug::tet_rules::HYBRID_TET_OCT, InitLinearManifoldSubsetHandler(), LINEAR, ug::MultiGrid::num_levels(), PROFILE_FUNC_GROUP, SUBDIV_SURF_AVERAGING_SCHEME, SUBDIV_SURF_LOOP_SCHEME, SUBDIV_VOL, and UG_THROW.

Referenced by ug::bridge::Refinement::Functionality::Common().

§ ApplySmoothVolumePosToTopLevel()

void ug::ApplySmoothVolumePosToTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH 
)

Toplevel vertex repositioning function for subdivision volumes refinement.

This function repositions all toplevel inner vertices to their smoothed positions determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothVolPosreference to aSmoothVolPos
aNumElemsreference to aNumElems

References aPosition, ug::Grid::attach_to_vertices_dv(), ug::MultiGrid::begin(), CalculateNumElemsVertexAttachmentInTopLevel(), CalculateSmoothVolumePosInTopLevel(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::detach_from_vertices(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, SUBDIV_VOL, ug::MultiGrid::top_level(), UG_THROW, and VecScale().

Referenced by ApplySmoothSubdivisionVolumesToTopLevel().

§ AssembleInjectionByAverageOfChildren() [1/2]

template<int dim, typename TAlgebra >
void ug::AssembleInjectionByAverageOfChildren ( typename TAlgebra::matrix_type &  mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

§ AssembleInjectionByAverageOfChildren() [2/2]

template<typename TAlgebra >
void ug::AssembleInjectionByAverageOfChildren ( typename TAlgebra::matrix_type &  mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

§ AssembleInjectionForP1Lagrange()

template<typename TAlgebra >
void ug::AssembleInjectionForP1Lagrange ( typename TAlgebra::matrix_type &  mat,
const DoFDistribution coarseDD,
const DoFDistribution fineDD 
)

This functions assembles the interpolation matrix between to grid levels using only the RegularVertex degrees of freedom.

Parameters
[out]matAssembled interpolation matrix that interpolates u -> v
[in]approxSpaceApproximation Space
[in]coarseLevelCoarse Level index
[in]fineLevelFine Level index

References ug::MultiGrid::get_parent(), ug::DoFDistribution::inner_algebra_indices(), ug::LFEID::LAGRANGE, ug::DoFDistributionInfoProvider::local_finite_element_id(), ug::DoFDistribution::multi_grid(), ug::DoFDistributionInfoProvider::num_fct(), ug::DoFDistribution::num_indices(), ug::LFEID::order(), PROFILE_FUNC_GROUP, ug::LFEID::type(), and UG_THROW.

§ AssembleLinearOperatorRhsAndSolution()

template<typename TAlgebra >
void ug::AssembleLinearOperatorRhsAndSolution ( AssembledLinearOperator< TAlgebra > &  op,
typename TAlgebra::vector_type &  u,
typename TAlgebra::vector_type &  b 
)

help function to assemble a linear operator

This function initializes the operator, sets the vector b to the computed rhs and sets the dirichlet post processes for the vector u.

Parameters
[out]opOperator
[out]uSolution
[out]bRigth-Hand side vector
Template Parameters
TAlgebraalgebra type

References ASS_PROFILE_BEGIN, ASS_PROFILE_END, ug::AssembledLinearOperator< TAlgebra >::init_op_and_rhs(), ug::AssembledLinearOperator< TAlgebra >::set_dirichlet_values(), and UG_CATCH_THROW.

Referenced by ug::AssembledLinearOperator< algebra_type >::set_dirichlet_values().

§ AssignAssociatedLowerDimElemsToSubsets() [1/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Volume  
)

helper with with dummy-param for compile-time function selection.

§ AssignAssociatedLowerDimElemsToSubsets() [2/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Face  
)

helper with with dummy-param for compile-time function selection.

§ AssignAssociatedLowerDimElemsToSubsets() [3/3]

template<class TElem , class TSubsetHandlerDest , class TSubsetHandlerSrc >
void ug::AssignAssociatedLowerDimElemsToSubsets ( TSubsetHandlerDest &  sh,
const TSubsetHandlerSrc &  srcIndHandler,
const Edge  
)

helper with with dummy-param for compile-time function selection.

§ AssignCreaseVertices() [1/2]

§ AssignCreaseVertices() [2/2]

§ AssignFixedVertices() [1/2]

§ AssignFixedVertices() [2/2]

§ AssignIndices()

template<class TElem >
void ug::AssignIndices ( typename geometry_traits< TElem >::iterator  iterBegin,
typename geometry_traits< TElem >::iterator  iterEnd,
Grid::AttachmentAccessor< TElem, AInt > &  aaInt 
)

§ AssignMult() [1/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References AddMult(), AssignMult(), and UG_ASSERT.

§ AssignMult() [2/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( DenseMatrix< A > &  dest,
const DenseMatrix< B > &  mA,
const DenseMatrix< C > &  mB 
)
inline

References AddMult(), AssignMult(), and UG_ASSERT.

§ AssignMult() [3/7]

void ug::AssignMult ( number dest,
const number b,
const number vec 
)
inline

§ AssignMult() [4/7]

template<typename A , typename B , typename C >
void ug::AssignMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

§ AssignMult() [5/7]

template<typename A , typename B >
void ug::AssignMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References alpha, and AssignMult().

§ AssignMult() [6/7]

template<typename A , typename B >
void ug::AssignMult ( DenseVector< A > &  dest,
const double &  b,
const DenseVector< B > &  vec 
)
inline

References AssignMult().

§ AssignMult() [7/7]

template<typename A >
void ug::AssignMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References AssignMult().

§ AssignSidesToSubsets< Edge >()

§ AssignSidesToSubsets< Face >()

§ AssignSidesToSubsets< Volume >()

§ AssignSubsetsByInterfaceType()

§ AssignSubsetsByQuality()

template<class TIterator >
bool ug::AssignSubsetsByQuality ( Grid grid,
SubsetHandler sh,
TIterator  elemsBegin,
TIterator  elemsEnd,
std::vector< number intervals 
)

assigns a subset based on the quality of the given element.

Currently only faces are supported.

Parameters
intervalscontains the intervals which define into which subset an element goes. Numbers have to be sorted, starting at 0 and ending at 1 (0 and 1 should be contained in intervals).

References aPosition, ug::GridSubsetHandler::assign_subset(), and FaceQuality().

§ AssignSubsetsBySurfaceViewState()

§ AssignTetrahedronAttributesByAspectRatio() [1/2]

bool ug::AssignTetrahedronAttributesByAspectRatio ( Grid grid,
SubsetHandler shVolume,
AInt aTetrahedronAspectRatioClass,
vector< double > &  offsets,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)

assigns attributes to tetrahedral elements of a grid respecting their aspect ratio

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), CalculateTetrahedronAspectRatio(), and ug::Grid::end().

§ AssignTetrahedronAttributesByAspectRatio() [2/2]

bool ug::AssignTetrahedronAttributesByAspectRatio ( Grid grid,
SubsetHandler shVolume,
AInt aTetrahedronAspectRatioClass,
vector< double > &  offsets,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

assigns tetrahedral elements of a grid to subsets respecting their aspect ratio

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), CalculateTetrahedronAspectRatio(), and ug::Grid::end().

§ AssignVerticalMasterAndSlaveStates()

template<class TElem >
static void ug::AssignVerticalMasterAndSlaveStates ( MGSelector msel,
bool  partitionForLocalProc 
)
static

The method operates on selected entries only. Make sure that all elements of type TElem which are being sent to a process are selected.

If a selected element has no children and if it is a vertical master, it will be marked as vertical master again.

If a selected element has unselected children, then those children will be selected as vertical master.

This method only works correctly if called for the elements of highest dimension.

References ug::MGSelector::begin(), ug::DistributedGridManager::contains_status(), ug::ISelector::deselect(), ug::MGSelector::end(), ES_V_MASTER, ES_V_SLAVE, GDIST_PROFILE_FUNC, ug::ISelector::get_selection_status(), ug::ISelector::is_selected(), IS_VMASTER, IS_VSLAVE, LG_DIST, ug::MGSelector::multi_grid(), ug::MGSelector::num_levels(), ug::ISelector::select(), UG_ASSERT, and UG_DLOG.

§ AttachmentAllReduce()

template<typename TElem , typename AType >
void ug::AttachmentAllReduce ( Grid grid,
AType  aValue,
pcl::ReduceOperation  op 
)

Syncronizes a given attachment using a given reduction operation. Note that the syncronization takes place only for the horizontal masters and slaves. Use e.g. like this:

AttachmentAllReduce<Vertex>(grid, aValue, PCL_RO_ADD)

see pcl_methods.h for more PCL_RO_... reduce operations.

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_H_MASTER, and INT_H_SLAVE.

§ AverageFunctionDifference()

template<typename TDomain , typename TAlgebra >
number ug::AverageFunctionDifference ( SmartPtr< GridFunction< TDomain, TAlgebra > >  spGridFct,
std::string  subset,
std::string  fct1,
std::string  fct2 
)

Calculates the average of the pointwise difference of two functions on given subset.

Iterates over all vertices of given subset, calculates difference of fct1 and fct2 and computes arithmetic mean of the differences at all vertices (grid points).

Note
fct1 and fct2 must both be defined on subset !
Parameters
[in]spGridFctGridFunction holding functions fct1 and fct2 defined on subset subset
[in]subsetname of the subset to compare on
[in]fct1name of the first function
[in]fct2name of the second function
Returns
arithmetic average of the pointwise differences of fct1 and fct2 on all vertices of subset

References DoFRef(), and PROFILE_FUNC.

§ AveragePositions()

template<typename TPosition >
void ug::AveragePositions ( TPosition &  vOut,
const TPosition *  vCornerCoords,
size_t  num 
)

§ backward_gs_step()

template<typename Matrix_type , typename Vector_type >
void ug::backward_gs_step ( Vector_type &  c,
const Matrix_type &  A,
const Vector_type &  d,
const size_t  i,
const number  relaxFactor 
)

§ baseName()

§ Bevel2d()

static int ug::Bevel2d ( const vector3 p)
static

Referenced by TriCubeIntersection().

§ Bevel3d()

static int ug::Bevel3d ( const vector3 p)
static

Referenced by TriCubeIntersection().

§ BlockDeserialize()

template<size_t Tr, size_t Tc>
bool ug::BlockDeserialize ( std::istream &  buff,
const DenseMatrix< FixedArray2< number, Tr, Tc > > &  mat 
)
inline

Referenced by Deserialize().

§ BlockMatrixFiniteAndNotTooBig()

template<typename TBlock >
bool ug::BlockMatrixFiniteAndNotTooBig ( TBlock &  m,
double  tooBigValue = 1e24 
)

§ BlockMatrixToDoubleMatrix()

template<typename TMatrix >
void ug::BlockMatrixToDoubleMatrix ( DenseMatrix< VariableArray2< double > > &  Ad,
TMatrix &  Ab 
)

References BlockRef().

Referenced by GetSliceDenseInverse().

§ BlockNorm() [1/3]

§ BlockNorm() [2/3]

template<typename T >
number ug::BlockNorm ( const T &  t)

§ BlockNorm() [3/3]

template<>
number ug::BlockNorm ( const number a)
inline

References BlockNorm2().

§ BlockNorm2() [1/5]

template<typename A >
double ug::BlockNorm2 ( const DenseMatrix< A > &  mat)
inline

References BlockNorm2().

§ BlockNorm2() [2/5]

template<typename TYPE >
double ug::BlockNorm2 ( const TYPE &  v)
inline

§ BlockNorm2() [3/5]

template<typename A >
double ug::BlockNorm2 ( const DenseVector< A > &  v)
inline

References BlockNorm2().

§ BlockNorm2() [4/5]

template<typename T >
number ug::BlockNorm2 ( const T &  t)

§ BlockNorm2() [5/5]

template<>
number ug::BlockNorm2 ( const number a)
inline

§ BlockRef() [1/8]

template<typename T >
double & ug::BlockRef ( T &  vec,
size_t  i 
)
inline

Referenced by ug::ActiveSet< TDomain, TAlgebra >::active_index_elem(), ug::LocalToGlobalMapperNLGS< TAlgebra >::add_local_mat_to_global(), ug::LocalToGlobalMapperNLGS< TAlgebra >::add_local_vec_to_global(), AddLocalMatrixToGlobal(), AddLocalVector(), ug::ScalarLowerObstacle< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ScalarUpperObstacle< TDomain, TAlgebra >::adjust_defect_to_constraint(), ug::ScalarLowerObstacle< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::ScalarUpperObstacle< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_sol_and_cor_elem(), BlockMatrixFiniteAndNotTooBig(), BlockMatrixToDoubleMatrix(), BlockVectorFiniteAndNotTooBig(), ug::AnalyzingSolver< M, X, Y >::check(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::SchurComplementOperator< algebra_type >::compute_matrix(), DoFRef(), ug::ILUTScalarPreconditioner< algebra_type >::get_vector(), ug::IExternalSolver< TAlgebra >::get_vector(), GetBlockGSCorrection(), GetBlockGSCorrectionILUT(), GetDoubleFromSparseBlock(), GetLocalVector(), GetSliceSparse(), ug::PrimalSubassembledMatrixInverse< algebra_type >::init(), MatExtractDiagOnLayout(), MatWriteDiagOnLayout(), ScalarSubMatrixAdapter< AT, ST, R, C >::operator()(), ScalarMatrixAdapter< AT, ST >::operator()(), ScalarVectorAdapter< AT, ST >::operator[](), ug::ConstScalarSubVectorAdapter< InVT, ST >::operator[](), ug::ScalarSubVectorAdapter< InVT, ST >::operator[](), ug::IProjGaussSeidel< TDomain, TAlgebra >::project_correction(), ug::AssemblingTuner< TAlgebra >::set_dirichlet_val(), ug::ScalarSubVectorAdapter< InVT, ST >::set_random(), ug::Vector< double >::set_random(), ug::ILUTScalarPreconditioner< algebra_type >::set_vector(), ug::IExternalSolver< TAlgebra >::set_vector(), SetCol(), SetDirichletRow(), SetRow(), ug::LU< TAlgebra >::solve_dense(), ug::GridFunctionVectorWriter< TGridFunction, TVector >::update(), ScalarSubMatrixAdapter< AT, ST, R, C >::row_iterator::value(), ScalarSubMatrixAdapter< AT, ST, R, C >::const_row_iterator::value(), ScalarMatrixAdapter< AT, ST >::row_iterator::value(), and ScalarMatrixAdapter< AT, ST >::const_row_iterator::value().

§ BlockRef() [2/8]

template<typename T >
const double & ug::BlockRef ( const T &  vec,
size_t  i 
)
inline

§ BlockRef() [3/8]

template<typename T >
double & ug::BlockRef ( T &  mat,
size_t  i,
size_t  j 
)
inline

§ BlockRef() [4/8]

template<typename T >
const double & ug::BlockRef ( const T &  mat,
size_t  i,
size_t  j 
)
inline

§ BlockRef() [5/8]

template<>
number& ug::BlockRef ( number m,
size_t  i 
)
inline

References UG_ASSERT.

§ BlockRef() [6/8]

template<>
const number& ug::BlockRef ( const number m,
size_t  i 
)
inline

References UG_ASSERT.

§ BlockRef() [7/8]

template<>
number& ug::BlockRef ( number m,
size_t  i,
size_t  j 
)
inline

References UG_ASSERT.

§ BlockRef() [8/8]

template<>
const number& ug::BlockRef ( const number m,
size_t  i,
size_t  j 
)
inline

References UG_ASSERT.

§ BlockSerialize()

template<size_t Tr, size_t Tc>
bool ug::BlockSerialize ( const DenseMatrix< FixedArray2< number, Tr, Tc > > &  mat,
std::ostream &  buff 
)
inline

Referenced by Serialize().

§ BlockVectorFiniteAndNotTooBig()

template<typename TBlock >
bool ug::BlockVectorFiniteAndNotTooBig ( TBlock &  v,
double  tooBigValue = 1e24 
)

References BlockRef(), and GetSize().

Referenced by IsFiniteAndNotTooBig().

§ BlurField()

template<class T >
void ug::BlurField ( Field< T > &  field,
number  alpha,
size_t  numIterations,
const T &  noDataValue 
)

Smoothens the field by adjusting the value of each pixel towards the average of its neighbours.

The value type T has to support operators += and *= and = 0

References alpha, ug::Field< T >::at(), ug::Field< T >::height(), and ug::Field< T >::width().

Referenced by ug::Heightfield::blur(), and ug::RasterLayers::blur_layers().

§ BroadcastGrid()

void ug::BroadcastGrid ( Grid gridOut,
Selector sel,
GridDataSerializationHandler serializer,
GridDataSerializationHandler deserializer,
int  root,
const pcl::ProcessCommunicator procCom = pcl::ProcessCommunicator() 
)

Broadcasts the specified Selection from 'root' to all processes in procCom.

Selected elements and associated attachments are broadcasted from 'root' to all processes in procCom (including 'root').

Parameters
serializerHas to operate on 'sel.grid()'. It is responsible to serialize e.g. attachments, subset-handlers or selectors.
deserializerHas to operate on 'gridOut'. It has to contain exactly the same components as 'serializer', except that all components have to operate on 'gridOut', too.
Note
In order to make sure that all required sides and vertices of selected elements are broadcasted, the given selector may be adjusted.

References pcl::ProcessCommunicator::broadcast(), ug::Grid::clear_geometry(), Deserialize(), ug::GridDataSerializationHandler::deserialize(), DeserializeGridElements(), ug::Selector::get_grid_objects(), ug::Grid::get_grid_objects(), ug::ISelector::grid(), pcl::ProcRank(), ug::GridDataSerializationHandler::read_infos(), SelectAssociatedGridObjects(), Serialize(), ug::GridDataSerializationHandler::serialize(), SerializeGridElements(), UG_COND_THROW, and ug::GridDataSerializationHandler::write_infos().

§ BroadcastVectorFromOne() [1/2]

§ BroadcastVectorFromOne() [2/2]

template<typename T >
void ug::BroadcastVectorFromOne ( IndexLayout agglomeratedMaster,
IndexLayout agglomeratedSlave,
pcl::InterfaceCommunicator< IndexLayout > &  com,
ParallelVector< T > &  vec,
const ParallelVector< T > &  collectedVec,
ParallelStorageType  type,
bool  bRoot 
)

broadcasts the vector collectedVec to the distributed vec

Parameters
agglomeratedMastermaster agglomeration layout. only nonempty if bRoot=true
agglomeratedSlaveslave agglomeration layout. only nonempty if bRoot=false
com
vec(output) the distributed vec
collectedVec(input) collectedVec
typecan be PST_ADDITIVE or PST_CONSISTENT
bRoot

!! WRONG !!! SetLayoutValues(&vec, vec.layouts()->slave(), 0.0); //!!!

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::ParallelVector< TVector >::get_storage_type(), ug::ParallelVector< TVector >::has_storage_type(), PROFILE_FUNC_GROUP, PST_ADDITIVE, PST_CONSISTENT, pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), ug::ParallelVector< TVector >::set_storage_type(), UG_CATCH_THROW, UG_COND_THROW, and UG_THROW.

§ BuildDomainDecompositionLayouts()

void ug::BuildDomainDecompositionLayouts ( IndexLayout subdomMastersOut,
IndexLayout subdomSlavesOut,
IndexLayout processMastersOut,
IndexLayout processSlavesOut,
IndexLayout deltaNbrMastersOut,
IndexLayout deltaNbrSlavesOut,
IndexLayout crossPointMastersOut,
IndexLayout crossPointSlavesOut,
const IndexLayout standardMasters,
const IndexLayout standardSlaves,
int  highestReferencedIndex,
pcl::IDomainDecompositionInfo ddinfo 
)

Given standard master and slave index layouts (as created e.g. by ug::CreateIndexLayout), this method constructs layouts as required by domain decomposition methods such as the Feti solver.

Note that the created layouts are horizontal layouts which allow to communicate between neighbours of the same subdomain (process-layouts), between neighbours in different subdomains (subdom-layouts) and between neighbours in the same subdomain, which lie in a subdomain layout (deltaNbr-layouts).

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), CommunicateConnections(), CopyInterfaceEntrysToDomainDecompositionLayouts(), pcl::SingleLevelLayout< TInterface >::end(), pcl::IDomainDecompositionInfo::map_proc_id_to_subdomain_id(), pcl::SingleLevelLayout< TInterface >::proc_id(), pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::FetiLayouts< algebra_type >::create_layouts(), and VecCopy().

§ BuildOneToManyLayout()

int ug::BuildOneToManyLayout ( IndexLayout masterLayoutOut,
IndexLayout slaveLayoutOut,
int  rootProcID,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::ProcessCommunicator  procComm,
std::vector< int > *  pNewMasterIDsOut = NULL 
)

given a layout which defines relations between neighbours, this method creates a layout which connect the elements in the given layouts with newly created elements on a root process and establishes a OneToMany connection.

All newly created elements will be contained in the masterInterfaceOut on rootProc. The associated vector-indices are assigned so that the work with a mxm matrix, where m is the returned number of newly created elements.

Parameters
pNewMasterIDsOut(out)an optional vector to which the associated new element ids for each element in the given masterLayout and slaveLayout will be written. If not large enough it will be resized to the highest referenced index and will contain -1 in each entry which is not referenced by masterLayout or slaveLayout.
Returns
the number of newly created elements (!= 0 only on rootProc).

References pcl::CollectUniqueElements(), pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::SingleLevelLayout< TInterface >::empty(), pcl::ProcessCommunicator::gather(), pcl::ProcessCommunicator::gatherv(), pcl::ProcessCommunicator::get_proc_id(), GetHighestReferencedIndex(), PCL_DT_INT, pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), and pcl::ProcessCommunicator::size().

Referenced by ug::PrimalSubassembledMatrixInverse< algebra_type >::init(), and VecCopy().

§ CalcTotalMem()

void ug::CalcTotalMem ( const Shiny::ProfileNode *  p)

References selfmem, and totalmem.

Referenced by UpdateTotalMem().

§ CalculateAverageCurvature()

template<class TAAPosVRT >
number ug::CalculateAverageCurvature ( Grid grid,
SubsetHandler shMarks,
Edge e,
TAAPosVRT &  aaPos 
)

§ CalculateBoundingBox() [1/2]

§ CalculateBoundingBox() [2/2]

template<class TElem , class TAAPos >
AABox<typename TAAPos::ValueType> ug::CalculateBoundingBox ( TElem *  e,
TAAPos  aaPos 
)

calculates the smallest axis aligned box that contains the given element

§ CalculateBoundingSphere()

template<class TAAPos >
Sphere<typename TAAPos::ValueType> ug::CalculateBoundingSphere ( FaceVertices face,
TAAPos  aaPos 
)

§ CalculateCreaseNormal() [1/2]

template<class TAAPosVRT >
TAAPosVRT::ValueType ug::CalculateCreaseNormal ( Grid grid,
Face f,
Vertex vrt,
Grid::edge_traits::callback  funcIsCreaseEdge,
TAAPosVRT &  aaPos 
)

returns true if the vertex lies on a surface.

This method uses Grid::mark.

This method tries to find a closed surface around the vertex. Note that it returns true, even if the vertex lies on a boundary edge at the same time (this can happen if surfaces intersect each other).

Requires the option FACEOPT_AUTOGENERATE_EDGES.calculates the normal of the crease vertex vrt on the side of f This algorithm uses grid::mark. f has to contain vrt. vrt has to have at least two associated crease edges.

Note that the resulting normal is not normalized. This is important, since rounding errors could else lead to problems with normals which have a length of nearly 0.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References ug::Grid::begin_marking(), CalculateCenter(), CollectEdges(), CollectFaces(), DropAPerpendicular(), EdgeContains(), ug::Grid::enable_options(), ug::Grid::end_marking(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::is_marked(), ug::Grid::mark(), ug::Grid::option_is_enabled(), UG_LOG, VecAdd(), VecNormalize(), VecSet(), VecSubtract(), and ug::EdgeVertices::vertex().

§ CalculateCreaseNormal() [2/2]

template<class TAAPosVRT >
TAAPosVRT::ValueType ug::CalculateCreaseNormal ( Grid grid,
Volume vol,
Vertex vrt,
Grid::face_traits::callback  funcIsCreaseFace,
TAAPosVRT &  aaPos 
)

calculates the normal of the crease vertex vrt on the side of vol

This algorithm uses grid::mark. vol has to contain vrt. vrt has to have at least two associated crease faces.

Note that the resulting normal is not normalized. This is important, since rounding errors could else lead to problems with normals which have a length of nearly 0.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References ug::Grid::begin_marking(), CalculateNormal(), CollectVolumes(), ug::Grid::enable_options(), ug::Grid::end_marking(), ug::Volume::face_desc(), FaceContains(), ug::Grid::get_side(), ug::Grid::is_marked(), ug::Grid::mark(), ug::Volume::num_sides(), ug::Grid::option_is_enabled(), UG_LOG, VecSet(), VecSubtract(), and VOLOPT_AUTOGENERATE_FACES.

Referenced by ExpandFractures2d(), and ExpandFractures3d().

§ CalculateLengthFac()

template<class TAAPosVRT >
number ug::CalculateLengthFac ( Grid grid,
SubsetHandler shMarks,
Edge e,
TAAPosVRT &  aaPos 
)

§ CalculateMinCurvature()

template<class TAAPosVRT >
number ug::CalculateMinCurvature ( Grid grid,
SubsetHandler shMarks,
Vertex vrt,
TAAPosVRT &  aaPos 
)

§ CalculateNormal() [1/2]

vector2 ug::CalculateNormal ( EdgeVertices edge,
Grid::AttachmentAccessor< Vertex, Attachment< vector2 > > &  aaPos 
)
inline

§ CalculateNormal() [2/2]

vector3 ug::CalculateNormal ( FaceVertices face,
Grid::AttachmentAccessor< Vertex, Attachment< vector3 > > &  aaPos 
)
inline

References CalculateNormal().

§ CalculateNormalDot() [1/2]

template<class TVertexPositionAccessor >
number ug::CalculateNormalDot ( TriangleDescriptor td1,
TriangleDescriptor td2,
TVertexPositionAccessor &  aaPos 
)

§ CalculateNormalDot() [2/2]

template<class TVertexPositionAccessor >
static number ug::CalculateNormalDot ( TriangleDescriptor td1,
TriangleDescriptor td2,
TVertexPositionAccessor &  aaPos 
)
static

§ CalculateNumElemsVertexAttachmentInTopLevel()

void ug::CalculateNumElemsVertexAttachmentInTopLevel ( MultiGrid mg,
AInt aNumElems 
)

Function for calculating the number of associated volumes of all toplevel vertices.

This function calculates the number of associated volumes for all toplevel vertices.

Parameters
mgreference to MultiGrid
aNumElemsreference to aNumElems

References ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::VolumeVertices::num_vertices(), PCL_RO_SUM, ug::MultiGrid::top_level(), and ug::VolumeVertices::vertex().

Referenced by ApplySmoothVolumePosToTopLevel().

§ CalculateNumManifoldEdgesVertexAttachmentInParentLevel()

void ug::CalculateNumManifoldEdgesVertexAttachmentInParentLevel ( MultiGrid mg,
MGSubsetHandler markSH,
AInt aNumManifoldEdges 
)

Function for calculating the number of associated manifold edges of all parent level vertices.

This function calculates the number of associated manifold edges for all parent level vertices.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aNumManifoldEdgesreference to aNumManifoldEdges

References ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ES_H_SLAVE, pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), PCL_RO_SUM, ug::MultiGrid::top_level(), UG_THROW, and ug::EdgeVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelLoopScheme().

§ CalculateNumManifoldFacesVertexAttachmentInTopLevel()

void ug::CalculateNumManifoldFacesVertexAttachmentInTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
AInt aNumManifoldFaces 
)

Function for calculating the number of associated manifold faces of all toplevel manifold vertices.

This function calculates the number of associated volumes for all toplevel vertices.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aNumManifoldFacesreference to aNumManifoldFaces

References ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::DistributedGridManager::is_ghost(), ug::FaceVertices::num_vertices(), PCL_RO_SUM, ug::MultiGrid::top_level(), UG_THROW, and ug::FaceVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelAveragingScheme().

§ CalculatePolychainEdgeNormals()

void ug::CalculatePolychainEdgeNormals ( vector2 edgeNormalsOut,
vector2 polyChain,
size_t  polyChainSize,
bool  bOuterNormals 
)

Make sure that edgeNormalsOut has the same size as poly-chain. The poly-chain is treated as a closed poly-chain where an edge between the last and the first entry exists.

References VecDot(), VecNormalize(), and VecSubtract().

Referenced by TriangleFill().

§ CalculateRightBendVal()

number ug::CalculateRightBendVal ( vector2 dirOut,
number normDotOut,
SweepLineEdge e,
SweepLineVertex firstVrt,
vector2  lastDir,
bool  lastDirNormalized = false 
)

returns a value between -1 and 1, determining the magnitude of the right bend.

(-1, 0): left bend, 0: no bend, (0, 1): right bend

References ug::SweepLineEdge::direction(), ug::SweepLineEdge::m_v1, VecDot(), VecNormalize(), and VecScale().

Referenced by CreateSweepLineStructs(), and TriangleFill_SweepLine().

§ CalculateSmoothManifoldPosInParentLevelLoopScheme()

void ug::CalculateSmoothManifoldPosInParentLevelLoopScheme ( MultiGrid mg,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
APosition aSmoothBndPosEvenVrt,
APosition aSmoothBndPosOddVrt,
AInt aNumManifoldEdges 
)

Parent level vertex smoothing function for subdivision surfaces refinement (by C. Loop, 1987)

This function calculates the smoothed positions of all parent level vertices determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosEvenVrtreference to aSmoothBndPosEvenVrt
aSmoothBndPosOddVrtreference to aSmoothBndPosOddVrt
aNumManifoldEdgesreference to aNumManifoldEdges

References aPosition, ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::MultiGrid::begin(), CollectAssociated(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ES_H_SLAVE, ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), ug::SubdivRules_PLoop::inst(), ug::DistributedGridManager::is_ghost(), ug::MultiGrid::num_levels(), PCL_RO_SUM, ug::SubdivRules_PLoop::ref_even_inner_center_weight(), ug::SubdivRules_PLoop::ref_even_inner_nbr_weight(), ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), and VecSet().

Referenced by ApplySmoothManifoldPosToTopLevelLoopScheme().

§ CalculateSmoothManifoldPosInTopLevelAveragingScheme()

void ug::CalculateSmoothManifoldPosInTopLevelAveragingScheme ( MultiGrid mg,
MGSubsetHandler markSH,
MGSubsetHandler linearManifoldSH,
APosition aSmoothBndPos 
)

Toplevel vertex smoothing function for subdivision surfaces refinement (Averaging scheme)

This function calculates the smoothed positions of all toplevel vertices determined by the subdivision surfaces refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler
aSmoothBndPosreference to aSmoothBndPos

References aPosition, ug::MultiGrid::begin(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ug::ISubsetHandler::get_subset_index(), ug::DistributedGridManager::is_ghost(), ug::FaceVertices::num_vertices(), PCL_RO_SUM, ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::FaceVertices::vertex().

Referenced by ApplySmoothManifoldPosToTopLevelAveragingScheme().

§ CalculateSmoothVolumePosInTopLevel()

void ug::CalculateSmoothVolumePosInTopLevel ( MultiGrid mg,
MGSubsetHandler markSH,
APosition aSmoothVolPos 
)

Toplevel vertex smoothing function for subdivision volumes refinement.

This function calculates the smoothed positions of all toplevel vertices determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid
markSHreference to SubsetHandler markSH containing marked (inner) boundary manifold
aSmoothVolPosreference to aSmoothVolPos

References aPosition, ug::MultiGrid::begin(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), ug::Volume::get_opposing_object(), ug::ISubsetHandler::get_subset_index(), GetVertexIndex(), ug::DistributedGridManager::is_ghost(), ug::VolumeVertices::num_vertices(), PCL_RO_SUM, ug::Volume::reference_object_id(), ROID_OCTAHEDRON, ROID_TETRAHEDRON, SUBDIV_VOL, ug::MultiGrid::top_level(), UG_THROW, VecAdd(), VecScaleAppend(), VecSet(), and ug::VolumeVertices::vertex().

Referenced by ApplySmoothVolumePosToTopLevel().

§ CalculateTriangleNormal()

void ug::CalculateTriangleNormal ( SimpleGrid sg,
int  triIndex 
)

caculates the normal of the given triangle and stores it in sg.triangleNormals[triIndex]

Make sure that sg.triangleNormas and sg.triangles have the right sizes.

References ug::SimpleGrid::triangleNormals, ug::SimpleGrid::triangles, and ug::SimpleGrid::vertices.

Referenced by CalculateTriangleNormals(), and SwapEdge().

§ CalculateTriangleNormals()

void ug::CalculateTriangleNormals ( SimpleGrid sg)

§ cgetrf_()

void ug::cgetrf_ ( lapack_int m,
lapack_int n,
std::complex< lapack_float > *  pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

§ cgetrs_()

void ug::cgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const std::complex< lapack_float > *  pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
std::complex< lapack_float > *  b,
lapack_int ldb,
lapack_int info 
)

§ check_subset_strings()

void ug::check_subset_strings ( std::vector< std::string >  s)
inline

§ CheckDoFElem()

§ CheckDoFPositions() [1/2]

template<typename TFunction >
bool ug::CheckDoFPositions ( const TFunction &  u)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References CheckDoFPositions(), and ExtractAlgebraIndices().

§ CheckDoFPositions() [2/2]

template<typename TDomain >
bool ug::CheckDoFPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd 
)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References EDGE, ExtractPositions(), FACE, ug::DoFDistributionInfoProvider::max_dofs(), ug::DoFDistribution::num_indices(), VERTEX, and VOLUME.

Referenced by CheckDoFPositions(), and ExtractPositions().

§ CheckEnoughTimePassedToNow()

bool ug::CheckEnoughTimePassedToNow ( ProfileCall &  pc,
Shiny::tick_t  tnow 
)

Referenced by ShinyCallLoggingEnd().

§ CheckForUnconnectedSides()

bool ug::CheckForUnconnectedSides ( Grid grid)

Logs all unconnected sides to UG_ERR_LOG and returns true if an unconnected side was found.

References ug::Grid::num().

Referenced by ug::bridge::RegisterGridBridge_Debug().

§ CheckForUnconnectedSidesIMPL()

template<class TSide >
static bool ug::CheckForUnconnectedSidesIMPL ( Grid grid)
static

§ CheckGFforNaN() [1/2]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFforNaN ( const TGridFunction *  u,
size_t  fct 
)

Checks values of a grid function at given elements (like vertices) for nan and inf

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctindex of the function

References DoFRef(), UG_LOG, and UG_THROW.

Referenced by SumGFValuesAt().

§ CheckGFforNaN() [2/2]

template<typename TGridFunction , typename TBaseElem >
bool ug::CheckGFforNaN ( const TGridFunction *  u,
const char *  fct_names 
)

Checks values of a grid function at given elements (like vertices) for nan and inf

This version takes symbolic data.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fct_namesindex of the function

References ug::FunctionGroup::add(), TokenizeString(), and UG_LOG.

§ CheckHangingNodeConstrainingFace()

template<typename T >
void ug::CheckHangingNodeConstrainingFace ( bool  isConsistent,
Grid g,
iter,
end 
)

§ CheckLine()

static int ug::CheckLine ( const vector3 p1,
const vector3 p2,
int  outcode_diff 
)
static

References CheckPoint(), INSIDE, and OUTSIDE.

Referenced by TriCubeIntersection().

§ CheckLocalParentTypes()

§ CheckLuaCallbackName()

bool ug::CheckLuaCallbackName ( const char *  name)

§ CheckMultiGridConsistencyImpl()

§ CheckPermutationBijective()

bool ug::CheckPermutationBijective ( const std::vector< size_t > &  perm)

References UG_COND_THROW.

§ CheckPoint()

static int ug::CheckPoint ( const vector3 p1,
const vector3 p2,
number  alpha,
long  mask 
)
static

References FacePlane(), LERP, and mask().

Referenced by CheckLine().

§ checksub()

§ ClearAbortRunFlag()

UG_API void ug::ClearAbortRunFlag ( )

clears the abort-run-flag.

Referenced by ug::bridge::RegisterBridge_Misc().

§ CloneVector() [1/2]

template<typename TValueType >
void ug::CloneVector ( Vector< TValueType > &  dest,
const Vector< TValueType > &  src 
)

§ CloneVector() [2/2]

template<typename TVector >
bool ug::CloneVector ( ParallelVector< TVector > &  dest,
const ParallelVector< TVector > &  src 
)

References CloneVector().

§ CloseToZero()

bool ug::CloseToZero ( double  d)
inline

§ cmp_slv()

bool ug::cmp_slv ( const SweepLineVertex v1,
const SweepLineVertex v2 
)
inline

§ CollapseEdge()

bool ug::CollapseEdge ( SimpleGrid sg)

collapses the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid. two triangles will be removed.

A new vertex will be added at the end of the list. Its normal and position will be interpolated from the end-points of the edge. The first two vertices in sg (the endpoints of the collapsed edge) remain unused.

The manipulated grid is no longer suited for swap, split or collapse operations.

References CalculateTriangleNormals(), ug::SimpleGrid::triangles, VecAdd(), VecNormalize(), VecScale(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

§ CollectAllVerticesForNG()

static bool ug::CollectAllVerticesForNG ( Grid grid,
VertexSelector NgVrtSel,
VertexSelector SurfVrtSel,
VertexSelector InnVrtSel 
)
static

collects all vertices in *.ng file order in a selector

References ug::TElemSelector< TBaseElem >::begin(), ug::TElemSelector< TBaseElem >::end(), and ug::ISelector::select().

Referenced by ExportGridToUG().

§ CollectConstraining()

§ CollectCornerCoordinates()

template<typename TElem , typename TAAPos >
void ug::CollectCornerCoordinates ( std::vector< typename TAAPos::ValueType > &  vCornerCoordsOut,
TElem *  elem,
const TAAPos &  aaPos,
bool  clearContainer 
)

References GetVertex(), and NumVertices().

§ CollectInnerVertices()

static bool ug::CollectInnerVertices ( Grid grid,
VertexSelector InnVrtSel,
VertexSelector SurfVrtSel 
)
static

§ CollectLines()

static bool ug::CollectLines ( Grid grid,
const SubsetHandler shFace,
EdgeSelector LineSel 
)
static

§ CollectMatrixOnOneProc()

template<typename matrix_type >
void ug::CollectMatrixOnOneProc ( const matrix_type &  A,
matrix_type &  collectedA,
IndexLayout masterLayout,
IndexLayout slaveLayout 
)
  1. constructs global indices
  2. for pid != proc_id(0) : a) send the whole matrix with global ids to proc_id(0) b) create slaveLayout to proc_id(0)
  3. for pid = proc_id(0) : a) receives the matrices b) builds up collectedA c) creates masterLayout to all other pids.
Parameters
A(input) the distributed parallel matrix A
collectedA(output) the collected matrix A on pid = proc_id(0)
masterLayoutthe agglomeration master layout (only defined on pid = proc_id(0))
slaveLayoutthe agglomeration slave layout (only defined on pid != proc_id(0))

References pcl::SingleLevelLayout< TInterface >::clear(), pcl::ProcessCommunicator::get_proc_id(), LIB_ALG_AMG, pcl::ProcRank(), PROFILE_FUNC_GROUP, ReceiveMatrix(), SendMatrix(), pcl::ProcessCommunicator::size(), UG_CATCH_THROW, and UG_DLOG.

Referenced by ug::AgglomeratingBase< IPreconditioner< TAlgebra >, TAlgebra >::init_mat().

§ collectStretchedElementIndices()

§ CollectSurfaceVertices()

static bool ug::CollectSurfaceVertices ( Grid grid,
const SubsetHandler shFace,
VertexSelector SurfVrtSel 
)
static

§ CollectSurfaceViewElements() [1/2]

template<class TElem >
void ug::CollectSurfaceViewElements ( ISubsetHandler surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh,
bool  clearContainer = true 
)

§ CollectSurfaceViewElements() [2/2]

§ CollectUnconnectedSides()

template<class TSideIterator >
size_t ug::CollectUnconnectedSides ( std::vector< typename TSideIterator::value_type > &  elemsOut,
Grid grid,
TSideIterator  begin,
TSideIterator  end 
)

Writes all elements between 'begin' and 'end' which are not sides of elements in 'grid' to 'elemsOut'. This method only makes sense if called on a sequence of vertices, edges, or faces.

References ug::Grid::associated_elements(), and ug::PointerConstArray< TPtr >::size().

Referenced by CheckForUnconnectedSidesIMPL().

§ CollectUniqueObjects()

template<class TType >
static void ug::CollectUniqueObjects ( vector< TType > &  vecOut,
const vector< TType > &  vecIn 
)
static

Referenced by LoadGridFromART().

§ ColorControlVolume()

§ ColorProcessorGraph()

int ug::ColorProcessorGraph ( pcl::InterfaceCommunicator< IndexLayout > &  com,
std::set< int > &  pids,
std::vector< int > &  processesWithLowerColor,
std::vector< int > &  processesWithHigherColor 
)

§ ColorSubControlVolume()

template<typename TElem >
void ug::ColorSubControlVolume ( ISubsetHandler shOut)

§ ColorSubControlVolumeFaces()

template<typename TElem >
void ug::ColorSubControlVolumeFaces ( ISubsetHandler shOut)

§ CommaListToVector()

vector<nodeType*> ug::CommaListToVector ( nodeType a)

§ CommunicateConnections()

§ ComparePosDim()

template<int dim>
bool ug::ComparePosDim ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

§ ComparePosDim< 1 >()

template<>
bool ug::ComparePosDim< 1 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

§ ComparePosDim< 2 >()

template<>
bool ug::ComparePosDim< 2 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

§ ComparePosDim< 3 >()

template<>
bool ug::ComparePosDim< 3 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

§ ComparePosDimYDir()

template<int dim>
bool ug::ComparePosDimYDir ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

§ ComparePosDimYDir< 1 >()

template<>
bool ug::ComparePosDimYDir< 1 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

§ ComparePosDimYDir< 2 >()

template<>
bool ug::ComparePosDimYDir< 2 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

§ ComparePosDimYDir< 3 >()

template<>
bool ug::ComparePosDimYDir< 3 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

§ ComparePosDimZDir()

template<int dim>
bool ug::ComparePosDimZDir ( const std::pair< MathVector< dim >, size_t > &  p1,
const std::pair< MathVector< dim >, size_t > &  p2 
)

§ ComparePosDimZDir< 1 >()

template<>
bool ug::ComparePosDimZDir< 1 > ( const std::pair< MathVector< 1 >, size_t > &  p1,
const std::pair< MathVector< 1 >, size_t > &  p2 
)

§ ComparePosDimZDir< 2 >()

template<>
bool ug::ComparePosDimZDir< 2 > ( const std::pair< MathVector< 2 >, size_t > &  p1,
const std::pair< MathVector< 2 >, size_t > &  p2 
)

§ ComparePosDimZDir< 3 >()

template<>
bool ug::ComparePosDimZDir< 3 > ( const std::pair< MathVector< 3 >, size_t > &  p1,
const std::pair< MathVector< 3 >, size_t > &  p2 
)

§ ComputeAvg()

template<typename TElem >
number ug::ComputeAvg ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number sum,
number errSq,
size_t &  numElem,
number minLocal,
number maxLocal,
number sumLocal,
size_t &  numElemLocal 
)

helper function that computes min/max and total of error indicators

References pcl::ProcessCommunicator::allreduce(), ComputeMinMax(), pcl::NumProcs(), PCL_RO_MAX, PCL_RO_MIN, PCL_RO_SUM, UG_LOG, and UG_THROW.

Referenced by ug::VarianceMarkingEta< TDomain >::mark().

§ ComputeBFMidID() [1/3]

template<typename TRefElem >
static void ug::ComputeBFMidID ( const TRefElem &  rRefElem,
int  side,
MidID  vMidID[],
int  co 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

§ ComputeBFMidID() [2/3]

template<typename TRefElem >
static void ug::ComputeBFMidID ( const TRefElem &  rRefElem,
int  side,
MidID  vMidID[],
int  co 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

References ug::FV1IBGeometry< TElem, TWorldDim >::numSCV.

§ ComputeBFMidID() [3/3]

template<typename TRefElem >
static void ug::ComputeBFMidID ( const TRefElem &  rRefElem,
int  side,
MidID  vMidID[],
int  co 
)
static

§ ComputeCuthillMcKeeOrder()

void ug::ComputeCuthillMcKeeOrder ( std::vector< size_t > &  vNewIndex,
std::vector< std::vector< size_t > > &  vvNeighbour,
bool  bReverse = true,
bool  bPreserveConsec = true 
)

returns an array describing the needed index mapping for Cuthill-McKee ordering

This function computes an index mapping that transforms an index-graph by a Cuthill-McKee ordering. For each index, a vector of all adjacent indices must be passed.

There are two intended ways of this function to work, depending on the flag bPreserveConsec: If set to true (default), the function expects vvNeighbor to contain adjacency information sorted by associated geometric object, i.e.: Geometric object 0 DoF 0 DoF 1 DoF 2 ... Geometric object 1 DoF 0 DoF 1 DoF 2 ... ...

None of the first indices of any geometric object must be unconnected! Only the first DoF index of any geometric object must be given neighbor information! This is required to guarantee that DoF indices associated to a geometric object stay consecutive.

If set to false, indices without any adjacency information given in vvNeighbour will be sorted to the end. Nothing is preserved. This is applicable if vvNeighbour contains the final non-zero entries of a sparse matrix to be re-ordered, e.g., as a pre-processing step for ILU(-T) pre-conditioning.

On exit, the index field vNewIndex is filled with the index mapping: newInd = vNewIndex[oldInd]

Parameters
[out]vNewIndexvector returning new index for old index
[in]vvNeighbourvector of adjacent indices for each index
[in]bReverseflag if "reverse Cuthill-McKee" is used
[in]bPreserveConsecflag indicating whether ordering is done for DofDistribution
Returns
flag if ordering was successful

References PROFILE_FUNC, UG_ASSERT, and UG_THROW.

Referenced by GetCuthillMcKeeOrder(), and OrderCuthillMcKee().

§ ComputeDifferenceOnDelta()

template<typename TVector >
void ug::ComputeDifferenceOnDelta ( TVector &  diff,
const TVector &  u,
IndexLayout dualMasterLayoutIn,
IndexLayout dualSlaveLayoutIn,
IndexLayout dualNbrMasterLayoutIn,
IndexLayout dualNbrSlaveLayoutIn 
)

Application of the "jump operator" \(B_{\Delta}\).

This function applies \(B_{\Delta}\) to \(u_{\Delta}\). It computes the difference (the "jump") between the double-valued unknowns \(u_{\Delta}\) and communicate the results so that the difference vector is stored consistently afterwards.

Note: This computation is only unique up to the sign of the difference. Thus, we can freely decide it, but have then to stay with the choice.

Parameters
[out]diffdestination vector for differences computed on "Dual layout"
[in]uvector \(u_{\Delta}\)
[in]dualMasterLayoutIndual master layout to operate on
[in]dualSlaveLayoutIndual slave layout to operate on
[in]dualNbrMasterLayoutIndual master layout to operate on
[in]dualNbrSlaveLayoutIndual slave layout to operate on

References VecCopy(), and VecSubtractOneSlaveFromMaster().

Referenced by ug::FETISolver< TAlgebra >::apply_F(), ug::FETISolver< TAlgebra >::apply_M_inverse(), and ug::FETISolver< TAlgebra >::compute_d().

§ ComputeDifferenceOnDeltaTransposed()

template<typename TVector >
void ug::ComputeDifferenceOnDeltaTransposed ( TVector &  f,
const TVector &  diff,
const std::vector< IndexLayout::Element > &  vDualMasterIndex,
const std::vector< IndexLayout::Element > &  vDualSlaveIndex,
const std::vector< IndexLayout::Element > &  vDualNbrSlaveIndex 
)

'ComputeDifferenceOnDeltaTransposed()': Apply \(B_{\Delta}^T\)

This function applies \(B_{\Delta}^T\) to a difference vector \(d\), (lying in the same space as \(\lambda\)). \(d\) is supposed to be stored consistently.

For the application of \(B_{\Delta}\) and the chosen scaling factors see the documentation of 'ComputeDifferenceOnDelta()'.

Parameters
[out]fvector \(f_{\Delta}\) living on "Dual layout"
[in]diffdifference vector on "Dual layout"
[in]vDualMasterIndexdual master layout to operate on
[in]vDualSlaveIndexdual slave layout to operate on
[in]vDualNbrSlaveIndexdual nbr slave layout to operate on

References VecScaleAssign().

Referenced by ug::FETISolver< TAlgebra >::apply_F(), ug::FETISolver< TAlgebra >::apply_M_inverse(), and ug::FETISolver< TAlgebra >::apply_return_defect().

§ ComputeDirectionYOrder()

template<int dim>
void ug::ComputeDirectionYOrder ( std::vector< std::pair< MathVector< dim >, size_t > > &  vPos,
std::vector< size_t > &  indY 
)

§ ComputeDirectionZOrder()

template<int dim>
void ug::ComputeDirectionZOrder ( std::vector< std::pair< MathVector< dim >, size_t > > &  vPos,
std::vector< size_t > &  indZ 
)

§ ComputeGradientCrouzeixRaviart()

§ computeGradientJump()

template<typename TFunction >
void ug::computeGradientJump ( TFunction &  u,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaGrad,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

§ ComputeGradientLagrange1()

§ ComputeGradientPiecewiseConstant()

template<typename TFunction >
void ug::ComputeGradientPiecewiseConstant ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

§ ComputeLexicographicOrder()

template<int dim>
void ug::ComputeLexicographicOrder ( std::vector< size_t > &  vNewIndex,
std::vector< std::pair< MathVector< dim >, size_t > > &  vPos 
)

§ ComputeMidPoints() [1/3]

template<int dim, typename TRefElem , int maxMid>
static void ug::ComputeMidPoints ( const TRefElem &  rRefElem,
const MathVector< dim vCorner[],
MathVector< dim vvMid[][maxMid] 
)
static
Template Parameters
dimdimension of coordinates
TRefElemReference element type
maxMidMaximum number of elements for all dimensions

References dim, ROID_PYRAMID, UG_THROW, and VecScaleAdd().

§ ComputeMidPoints() [2/3]

template<int dim, typename TRefElem , int maxMid>
static void ug::ComputeMidPoints ( const TRefElem &  rRefElem,
const MathVector< dim vCorner[],
MathVector< dim vvMid[][maxMid] 
)
static
Template Parameters
dimdimension of coordinates
TRefElemReference element type
maxMidMaximum number of elements for all dimensions

References dim, ROID_OCTAHEDRON, and VecScaleAdd().

Referenced by ug::DimFVGeometry< TWorldDim, TDim >::update_local().

§ ComputeMidPoints() [3/3]

template<int dim, typename TRefElem , int maxMid>
static void ug::ComputeMidPoints ( const TRefElem &  rRefElem,
const MathVector< dim vCorner[],
MathVector< dim vvMid[][maxMid] 
)
static
Template Parameters
dimdimension of coordinates
TRefElemReference element type
maxMidMaximum number of elements for all dimensions

§ ComputeMinMax()

template<typename TElem >
void ug::ComputeMinMax ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number totalErr,
size_t &  numElem,
number minLocal,
number maxLocal,
number totalErrLocal,
size_t &  numElemLocal 
)

§ ComputeMinMaxTotal()

template<typename TElem >
void ug::ComputeMinMaxTotal ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
ConstSmartPtr< DoFDistribution dd,
number min,
number max,
number totalErr,
size_t &  numElem 
)

helper function that computes min/max and total of error indicators

References ComputeMinMax().

Referenced by ComputeMinMax(), ug::GlobalMarking< TDomain >::mark(), MarkElements(), MarkElementsForCoarsening(), and MarkElementsForRefinement().

§ ComputeMultiIndicesOfSubElement()

template<int dim>
void ug::ComputeMultiIndicesOfSubElement ( std::vector< MathVector< dim, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

Referenced by CopyCornerByMidID().

§ ComputeMultiIndicesOfSubElement< 1 >()

template<>
void ug::ComputeMultiIndicesOfSubElement< 1 > ( std::vector< MathVector< 1, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

§ ComputeMultiIndicesOfSubElement< 2 >()

template<>
void ug::ComputeMultiIndicesOfSubElement< 2 > ( std::vector< MathVector< 2, int > > *  vvMultiIndex,
bool *  vIsBndElem,
std::vector< int > *  vElemBndSide,
std::vector< size_t > *  vIndex,
ReferenceObjectID  roid,
int  p 
)

§ ComputeMultiIndicesOfSubElement< 3 >()

§ ComputeOrientationOffset() [1/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Face face,
size_t  nrFace,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

Referenced by ug::AdaptionSurfaceGridFunction< TDomain >::ValueAccessor::access_closure(), ug::DoFDistribution::constrained_edge_dof_indices(), ug::DoFDistribution::constrained_face_dof_indices(), ug::DoFDistribution::dof_indices(), and ug::DoFDistribution::indices().

§ ComputeOrientationOffset() [2/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Edge edge,
size_t  nrEdge,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

§ ComputeOrientationOffset() [3/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
Face face,
Edge edge,
size_t  nrEdge,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

References ComputeOrientationOffsetGeneric().

§ ComputeOrientationOffset() [4/4]

void ug::ComputeOrientationOffset ( std::vector< size_t > &  vOrientOffset,
GridObject Elem,
GridObject SubElem,
size_t  nrSub,
const LFEID lfeid 
)

returns the orientation offsets if required

If more than on DoF is located on a geometric sub-element for some Local finite element space, the DoF order must be orientated sometimes in order to ensure continuity of the spaces (only spaces with some continuity requirement place dofs on sub elements). This can only be the case when the sub-element is of lower dimension than the LFE-Space.

This function computes the orientation offsets if required. I.e. if orientation is needed, the size of the output-vector will be equal to the number of dofs on the subelement and contain the numbers {0, ..., numDoFsOnSub-1} in the order the dofs must be sorted. If no orientation is required, the vector is returned empty

Parameters
vOrientOffsetorientation offset (or empty if no orientation required)
Elemthe element
SubElemthe sub-element where dofs are to be oriented
nrSubthe number of the sub-element in reference element counting
lfeidthe local finite element space

§ ComputeOrientationOffsetGeneric()

template<typename TBaseElem , typename TSubBaseElem >
void ug::ComputeOrientationOffsetGeneric ( std::vector< size_t > &  vOrientOffset,
TBaseElem elem,
TSubBaseElem *  sub,
size_t  nrSub,
const LFEID lfeid 
)

§ ComputeOrientationOffsetLagrange() [1/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
EdgeDescriptor ed,
EdgeVertices edge,
const size_t  p 
)

§ ComputeOrientationOffsetLagrange() [2/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Face face,
Edge edge,
size_t  nrEdge,
const size_t  p 
)

§ ComputeOrientationOffsetLagrange() [3/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Volume vol,
Edge edge,
size_t  nrEdge,
const size_t  p 
)

§ ComputeOrientationOffsetLagrange() [4/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
Volume volume,
Face face,
size_t  nrFace,
const size_t  p 
)

§ ComputeOrientationOffsetLagrange() [5/5]

void ug::ComputeOrientationOffsetLagrange ( std::vector< size_t > &  vOrientOffset,
GridObject volume,
GridObject face,
size_t  nrFace,
const size_t  p 
)

References UG_THROW.

§ ComputeSCVFMidID() [1/3]

template<typename TRefElem >
static void ug::ComputeSCVFMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th edge of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

§ ComputeSCVFMidID() [2/3]

template<typename TRefElem >
static void ug::ComputeSCVFMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static

§ ComputeSCVFMidID() [3/3]

template<typename TRefElem >
static void ug::ComputeSCVFMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th edge of ref elem

§ ComputeSCVMidID() [1/3]

template<typename TRefElem >
static void ug::ComputeSCVMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

References dim, ROID_PYRAMID, and UG_THROW.

§ ComputeSCVMidID() [2/3]

template<typename TRefElem >
static void ug::ComputeSCVMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static
Parameters
[in]iindicates that scvf corresponds to i'th corner of ref elem

§ ComputeSCVMidID() [3/3]

template<typename TRefElem >
static void ug::ComputeSCVMidID ( const TRefElem &  rRefElem,
MidID  vMidID[],
int  i 
)
static

§ ConfigShift() [1/2]

UG_API std::string ug::ConfigShift ( std::string  s)

returns a "shifted" string one-line strings are not shifted two line strings are shifted like this: input: "MyLine1\nMyLine2\n" Output: "\n | MyLine1\n | MyLine2" note that they get an additional
at the beginning, and doubled
and
at the end are removed, so you can use ConfigShift like this

strstr << "MySubcomponent = " << ConfigShift(comp1.config_string()) << "\n"
"MySubcomponent2 = " << ConfigShift(comp2.config_string()) << "\n"

Depending on comp1.config_string(), this results in "MySubcomponent1 = sub1 ... " or "MySubcomponent =\n | sub1.1\n | sub1.2 ..."

Parameters
[in]s
Returns
shifted string

§ ConfigShift() [2/2]

§ ConfigShiftRotation()

char ug::ConfigShiftRotation ( char  c)

References shiftCharactersLength.

Referenced by ConfigShift().

§ ConstructDualGraph()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraph ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
Grid grid,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT,
const GridObjectCollection pgoc = NULL 
)

The created dual graph ist described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>().

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume

Through pgoc you can specify a subset of the grid which shall be put into the graph. If pgoc == NULL (by default), the whole grid is used.

If you pass a multi-grid to this method, elements will be indexed for level 0 first, then for level 1 and so on.

References ug::Grid::attach_to_dv(), ug::GridObjectCollection::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::GridObjectCollection::end(), ug::Grid::get_grid_objects(), ug::Grid::has_attachment(), ug::GridObjectCollection::num(), and ug::GridObjectCollection::num_levels().

§ ConstructDualGraphMG()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraphMG ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
std::vector< TIndexType > *  pEdgeWeightsOut,
MultiGrid mg,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT 
)

The created dual graph ist described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>().

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

pEdgeWgtsOut may be specified with NULL. If it is given, then the weight for each entry in adacencyMapOut will be written to pEdgeWgtsOut. vWeight for each vertical connection (parents / children) and hWeigth for each horizontal connection (neighbors).

TGeomBaseObj can be either Vertex, Edge, Face or Volume

Elements will be indexed for level 0 first, then for level 1 and so on.

References ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::MultiGrid::get_child(), ug::MultiGrid::get_parent(), ug::Grid::has_attachment(), ug::MultiGrid::num(), ug::MultiGrid::num_children(), and ug::MultiGrid::num_levels().

§ ConstructDualGraphMGLevel()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructDualGraphMGLevel ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
MultiGrid mg,
size_t  level,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT,
DualGraphNeighborCollector< TGeomBaseObj > *  neighborCollector = NULL 
)

This method creates a dual graph for the given level only.

The i-th element of the given level will be the i-th node in the generated adjacency structure.

The created dual graph ist described in the following form. the adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map. The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth.

Note that the elements are processed one level after another.

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>(level).

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume

References ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::Grid::has_attachment(), and ug::MultiGrid::num().

§ ConstructGridOfSCV() [1/2]

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCV ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si 
)

§ ConstructGridOfSCV() [2/2]

template<template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCV ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si,
int  siDim 
)

§ ConstructGridOfSCVF() [1/2]

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCVF ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si 
)

§ ConstructGridOfSCVF() [2/2]

template<template< class, int > class TFVGeom, int TWorldDim>
void ug::ConstructGridOfSCVF ( ISubsetHandler shOut,
const SurfaceView surfView,
const Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPos,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut,
int  si,
int  siDim 
)

§ ConstructParallelDualGraphMGLevel()

template<class TGeomBaseObj , class TIndexType >
void ug::ConstructParallelDualGraphMGLevel ( std::vector< TIndexType > &  adjacencyMapStructureOut,
std::vector< TIndexType > &  adjacencyMapOut,
std::vector< TIndexType > &  nodeOffsetMapOut,
MultiGrid mg,
size_t  level,
pcl::ProcessCommunicator  procCom,
Attachment< TIndexType > *  paIndex = NULL,
TGeomBaseObj **  pGeomObjsOut = NULL,
NeighborhoodType  nbhType = NHT_DEFAULT 
)

DEPRECIATED! Use the ParallelDualGraph class instead!

This method creates a parallel dual graph for the given level only. Please refer to the parmetis documentation for a detailed overview over the resulting parallel graph structure.

The created dual graph ist described in the following form. The adjacency-map-structure holds for each node an index to where associated nodes are written in the adjacency-map.

The adjacency-map holds indices to the adjacent elements for a node. The indices in the adjaceny-map are ordered so that first all adjacent nodes of the first node appear, then the adjacent nodes of the second node and so forth. Note that those indices relate to the global index of the connected node.

The node-offset-map holds for each process the smallest global node index on that process. Note that all node indices on a process are consecutive. The node-offset-map holds numProcs+1 entries. The last one holds #numGlobalInds+1. The number of nodes on a process is thus given by (nodeOffsetMap[pInd] - nodeOffsetMap[pInd+1]).

Let n be the number of nodes in the graph, m be the number of edges. Then adjacencyMapStructureOut will contain n+1 entries (the last one is a convenience entry), and adjacencyMapOut will contain 2m entries (edges are always bidirectional).

please note that you'll find all entries belonging to node i in the entries adjacencyMapStructureOut[i] to (but not including) adjacencyMapStructureOut[i+1] of the adjacencyMapOut.

TIndexType has to be compatible with int.

If you are interested in a list of the TGeomBaseObj in the order corresponding to adjacencyMapStructureOut, you may pass a pointer to an array of TGeomBaseObj-pointers through pGeomObjsOut. Make sure, that this array has the size of grid.num<TGeomBaseObj>(level). It may however not be completely filled, since ghosts are ignored in the dual graph.

If you are interested in the indices assigned to each element, then pass a pointer to an TIndexType attachment to paIndex.

TGeomBaseObj can be either Vertex, Edge, Face or Volume and should represent the elements of highest dimension in a given grid.

References pcl::ProcessCommunicator::allgather(), ug::Grid::attach_to(), ug::MultiGrid::begin(), CollectNeighbors(), ug::Grid::detach_from(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), GDIST_PROFILE_FUNC, pcl::ProcessCommunicator::get_local_proc_id(), ug::Grid::has_attachment(), ug::DistributedGridManager::is_ghost(), PCL_DT_INT, and pcl::ProcessCommunicator::size().

§ Contains()

bool ug::Contains ( const string &  str,
const string &  search 
)

§ ContainsInterfaceElem()

template<class TStdVector >
static bool ug::ContainsInterfaceElem ( const TStdVector &  elems,
DistributedGridManager distGridMgr 
)
static

§ ContinuousDebugSave()

static void ug::ContinuousDebugSave ( ISelector sel)
static

temporary method, which will be removed when debugging is done.

References pcl::ProcRank(), SaveCoarsenMarksToFile(), and UG_LOG.

Referenced by ug::HangingNodeRefiner_MultiGrid::collect_objects_for_coarsen().

§ ConvertStringToLFEID() [1/2]

LFEID ug::ConvertStringToLFEID ( const char *  type,
int  dim,
int  order 
)

§ ConvertStringToLFEID() [2/2]

LFEID ug::ConvertStringToLFEID ( const char *  type,
int  dim 
)

§ CopyCornerByMidID() [1/3]

template<int dim, int maxMid>
static void ug::CopyCornerByMidID ( MathVector< dim vCorner[],
const MidID  vMidID[],
MathVector< dim vvMidPos[][maxMid],
const size_t  numCo 
)
static

§ CopyCornerByMidID() [2/3]

template<int dim, int maxMid>
static void ug::CopyCornerByMidID ( MathVector< dim vCorner[],
const MidID  vMidID[],
MathVector< dim vvMidPos[][maxMid],
const size_t  numCo 
)
static

§ CopyCornerByMidID() [3/3]

template<int dim, int maxMid>
static void ug::CopyCornerByMidID ( MathVector< dim vCorner[],
const MidID  vMidID[],
MathVector< dim vvMidPos[][maxMid],
const size_t  numCo 
)
static

§ CopyGridLevel()

template<class TAPos >
void ug::CopyGridLevel ( MultiGrid srcMG,
Grid destGrid,
ISubsetHandler srcSH,
ISubsetHandler destSH,
int  lvl,
TAPos  aPos 
)

Copies a grid level to a separate grid.

Extracts a specified level from a given MultiGrid with a given SubsetHandler and copies it to a new grid. Position data is read from aPos.

References ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::GridObjectCollection::begin(), ug::Grid::create_by_cloning(), ug::GridObjectCollection::end(), ug::MultiGrid::get_grid_objects(), ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::num_subsets(), and ug::ISubsetHandler::subset_info().

Referenced by SaveGridLevel().

§ CopyGridLevelElements()

§ CopyInterfaceEntrysToDomainDecompositionLayouts()

static void ug::CopyInterfaceEntrysToDomainDecompositionLayouts ( IndexLayout subdomLayoutOut,
IndexLayout processLayoutOut,
IndexLayout deltaNbrLayoutOut,
IndexLayout crossPointLayoutOut,
const IndexLayout standardLayout,
vector< int > &  flags,
IDomainDecompositionInfo ddinfo 
)
static

§ CopyOffDiagEntries()

template<typename TMatrixType , typename TRowType >
void ug::CopyOffDiagEntries ( const TMatrixType &  A,
size_t  i,
TRowType &  row,
bool  enforceNew = false 
)

§ CopySelectionStatus() [1/2]

template<class TGeomObj >
void ug::CopySelectionStatus ( Selector selOut,
Grid gridOut,
Selector selIn,
Grid gridIn 
)

Make sure that elements in gridOut directly correspond to elements in gridIn

References ug::Grid::begin(), ug::Grid::end(), ug::ISelector::is_selected(), and ug::ISelector::select().

§ CopySelectionStatus() [2/2]

template<class TGeomObj >
static void ug::CopySelectionStatus ( Selector selOut,
Grid gridOut,
Selector selIn,
Grid gridIn 
)
static

Make sure that elements in gridOut directly correspond to elements in gridIn

References ug::Grid::begin(), ug::Grid::end(), ug::ISelector::is_selected(), and ug::ISelector::select().

§ CopySubsetFromHigherDimNbr()

template<class TIterator >
static void ug::CopySubsetFromHigherDimNbr ( ISubsetHandler sh,
TIterator  elemsBegin,
TIterator  elemsEnd,
AChar  aDimension 
)
static

Helper method that copies subset-indices based on the subset-dimension property of each element. Subsets are only assigned to previously unassigned elements.

References ug::ISubsetHandler::assign_subset(), dim, ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::grid(), ug::ISubsetHandler::num_subsets(), ug::PointerConstArray< TPtr >::size(), and UG_COND_THROW.

Referenced by CopySubsetIndicesToSides().

§ CopySubsetIndices()

template<class TIterator >
static void ug::CopySubsetIndices ( ISubsetHandler dest,
const ISubsetHandler src,
TIterator  destIterBegin,
TIterator  destIterEnd,
TIterator  srcIterBegin,
TIterator  srcIterEnd 
)
static

§ CPPString()

template<typename TStorage >
std::string ug::CPPString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

References NonzeroString().

Referenced by SolveDeficit().

§ CreateAllToAllFromMasterSlave()

void ug::CreateAllToAllFromMasterSlave ( pcl::InterfaceCommunicator< IndexLayout > &  communicator,
IndexLayout OLCoarseningSendLayout,
IndexLayout OLCoarseningReceiveLayout,
IndexLayout OL1MasterLayout,
IndexLayout OL1SlaveLayout 
)

§ CreateControlVolumeDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateControlVolumeDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume faces w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

§ CreateFunctionIndexMapping() [1/2]

void ug::CreateFunctionIndexMapping ( FunctionIndexMapping map,
const FunctionGroup grpFrom,
const FunctionGroup grpTo 
)

Creates a function index mapping that maps all local indices from the one Function Group to the other. Make sure that the first Function Group is contained in the second and both function groups are based on the same function pattern - otherwise an exception is thrown.

References ug::FunctionIndexMapping::clear(), ug::FunctionGroup::contains(), ug::FunctionGroup::function_pattern(), ug::FunctionGroup::local_index(), ug::FunctionIndexMapping::push_back(), ug::FunctionGroup::size(), and UG_THROW.

Referenced by ug::DependentUserData< MathVector< TGridFunction::dim >, dim >::extract_fct_grp(), ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >::set_function_pattern(), and ug::IElemDisc< TDomain >::update_function_index_mapping().

§ CreateFunctionIndexMapping() [2/2]

void ug::CreateFunctionIndexMapping ( FunctionIndexMapping map,
const FunctionGroup grpFrom,
ConstSmartPtr< FunctionPattern fctPattern 
)

Creates a function index mapping that maps all local indices from the one Function Group to the corresponding indices in a function pattern. Make sure that the Function Group is contained function pattern - otherwise an exception is thrown.

References ug::FunctionGroup::add_all().

§ CreateGlobalLayout()

template<typename TLocalToGlobal >
void ug::CreateGlobalLayout ( GlobalLayout globalLayout,
const IndexLayout layout,
const TLocalToGlobal &  localToGlobal 
)

§ CreateGridFromField() [1/2]

void UG_API ug::CreateGridFromField ( Grid grid,
const Field< number > &  field,
const vector2 cellSize,
const vector2 offset,
number  noDataValue,
Grid::VertexAttachmentAccessor< APosition aaPos 
)

§ CreateGridFromField() [2/2]

§ CreateGridFromFieldBoundary() [1/2]

void UG_API ug::CreateGridFromFieldBoundary ( Grid grid,
const Field< number > &  field,
const vector2 cellSize,
const vector2 offset,
number  noDataValue,
Grid::VertexAttachmentAccessor< APosition aaPos 
)

§ CreateGridFromFieldBoundary() [2/2]

§ CreateGridOfControlVolumes()

template<template< class, int > class TFVGeom, typename TAAPosition , typename TAPosition >
void ug::CreateGridOfControlVolumes ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
TAPosition &  aPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

§ CreateGridOfSubControlVolumeFaces()

template<template< class, int > class TFVGeom, typename TAAPosition >
void ug::CreateGridOfSubControlVolumeFaces ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

§ CreateGridOfSubControlVolumes()

template<template< class, int > class TFVGeom, typename TAAPosition >
void ug::CreateGridOfSubControlVolumes ( ISubsetHandler shOut,
TAAPosition &  aaPosOut,
const ISubsetHandler sh,
const TAAPosition &  aaPos,
const SurfaceView surfView,
int  si = -1 
)

§ CreateIndexLayouts_DomainDecomposition()

bool ug::CreateIndexLayouts_DomainDecomposition ( IndexLayout processLayoutOut,
IndexLayout subdomainLayoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
int  level,
pcl::IDomainDecompositionInfo ddInfoIn 
)

§ CreateLayoutFromGlobalLayout()

template<typename TGlobalToLocal >
void ug::CreateLayoutFromGlobalLayout ( IndexLayout layout,
GlobalLayout globalLayout,
TGlobalToLocal &  globalToLocal,
bool  bRemoveDoubles = true 
)
inline

§ CreateLayoutsFromDistInfos()

§ CreateLevelIndexLayout()

bool ug::CreateLevelIndexLayout ( IndexLayout layoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
int  level 
)

creates the index layout for a level given a GridLayoutMap

This function creates the Index layout based on a GridLayout. All elements of the GridLayoutMap are loop on grid level and the indices attached to the grid elements are added to the interface. Since the ordering of the grid elements in the interfaces is assumed to be correct, also the ordering in the index layouts are correct.

Parameters
[out]layoutOutthe created index layout
[in]dofDistrthe DoF Distribution
[in]layoutMapthe grid layout map
[in]keyTypekey type (e.g. slave or master)
[in]levellevel, where layouts should be build

References AddEntriesToLevelIndexLayout(), pcl::SingleLevelLayout< TInterface >::clear(), EDGE, FACE, ug::GridLayoutMap::get_layout(), ug::GridLayoutMap::has_layout(), ug::DoFDistributionInfoProvider::max_dofs(), VERTEX, and VOLUME.

§ CreateListOfElemWeights()

template<class TElem >
number ug::CreateListOfElemWeights ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
typename DoFDistribution::traits< TElem >::const_iterator  iterBegin,
const typename DoFDistribution::traits< TElem >::const_iterator  iterEnd,
std::vector< double > &  eta 
)

§ CreateLocalAlgebraLayouts()

§ CreatePrism()

static Prism* ug::CreatePrism ( Grid grid,
vector< Triangle *> &  vTris,
vector< Quadrilateral *> &  vQuads,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

§ CreateProcessHierarchy() [1/3]

SPProcessHierarchy ug::CreateProcessHierarchy ( size_t *  numElemsOnLvl,
size_t  numLvls,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLvlsWithoutRedist 
)

Creates a process-hierarchy that fullfills the given conditions.

§ CreateProcessHierarchy() [2/3]

template<class TDomain >
SPProcessHierarchy ug::CreateProcessHierarchy ( TDomain &  dom,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLevelsWithoutRedist 
)

Creates a process-hierarchy that fullfills the given conditions.

Referenced by CreateProcessHierarchy().

§ CreateProcessHierarchy() [3/3]

template<class TDomain >
SPProcessHierarchy ug::CreateProcessHierarchy ( TDomain &  dom,
size_t  minNumElemsPerProcPerLvl,
size_t  maxNumRedistProcs,
size_t  maxNumProcs,
int  minDistLvl,
int  maxLevelsWithoutRedist,
IRefiner refiner 
)

§ CreatePyramid()

static Pyramid* ug::CreatePyramid ( Grid grid,
vector< Triangle *> &  vTris,
vector< Quadrilateral *> &  vQuads,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

§ CreateSCV()

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::CreateSCV ( const TElem &  elem,
TFVGeom< TElem, TWorldDim > &  geo,
ISubsetHandler shOut,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut 
)

§ CreateSCVF()

template<typename TElem , template< class, int > class TFVGeom, int TWorldDim>
void ug::CreateSCVF ( const TElem &  elem,
TFVGeom< TElem, TWorldDim > &  geo,
ISubsetHandler shOut,
Grid::VertexAttachmentAccessor< Attachment< MathVector< TWorldDim > > > &  aaPosOut 
)

§ CreateStrongConnectionGraphForSystems()

template<typename matrix_type >
void ug::CreateStrongConnectionGraphForSystems ( const matrix_type &  A,
cgraph graph,
double  theta 
)

§ CreateSubControlVolumeDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateSubControlVolumeDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

§ CreateSubControlVolumeFaceDomain()

template<template< class, int > class TFVGeom, typename TDomain >
void ug::CreateSubControlVolumeFaceDomain ( TDomain &  domOut,
const TDomain &  domIn,
const SurfaceView surfView,
int  si = -1 
)

Creates a grid consisting of the sub-control-volume faces w.r.t to a given domain.

Parameters
domOutdomain to be filled
domInoriginal domain
sisubset used (-1 for whole domain)

References UG_THROW.

§ CreateSubsetGroups()

template<typename TDomain >
void ug::CreateSubsetGroups ( std::vector< SubsetGroup > &  vSSGrp,
SubsetGroup unionSSGrp,
std::vector< IElemDisc< TDomain > *>  vElemDisc,
ConstSmartPtr< ISubsetHandler pSH 
)

§ CreateSurfaceIndexLayout()

bool ug::CreateSurfaceIndexLayout ( IndexLayout layoutOut,
DoFDistribution dofDistr,
GridLayoutMap layoutMap,
int  keyType,
MultiGrid mg,
DistributedGridManager dGrMgr 
)

creates the index layout for a level given a GridLayoutMap

This function creates the Index layout based on a GridLayout. All elements of the GridLayoutMap are loop level by level and the indices attached to the grid elements are added to the interface, if an element does not have a children. Since the ordering of the grid elements in the interfaces is assumed to be correct, also the ordering in the index layouts are correct.

Parameters
[out]layoutOutthe created index layout
[in]dofDistrthe DoF Distribution
[in]layoutMapthe grid layout map
[in]keyTypekey type (e.g. slave or master)
[in]mgunderlying MultiGrid
[in]dGrMgrdistributed Grid Manager

References AddEntriesToSurfaceIndexLayout(), EDGE, FACE, ug::GridLayoutMap::get_layout(), ug::GridLayoutMap::has_layout(), ug::DoFDistributionInfoProvider::max_dofs(), VERTEX, and VOLUME.

§ CreateSurfaceView() [1/3]

template<class TElem , class TSurfaceView >
void ug::CreateSurfaceView ( TSurfaceView &  surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh 
)

calls CollectSurfaceViewElements and then assigns all associated elements of lower dimension to the surface-view, too.

TSurfaceView has to be a SubsetHandler or MGSubsetHandler compatible type.

References FACEOPT_AUTOGENERATE_EDGES, UG_LOG, VOLOPT_AUTOGENERATE_EDGES, and VOLOPT_AUTOGENERATE_FACES.

§ CreateSurfaceView() [2/3]

template<class TSurfaceView >
void ug::CreateSurfaceView ( TSurfaceView &  surfaceViewOut,
MultiGrid mg,
MGSubsetHandler mgsh 
)

calls CollectSurfaceViewElements and then assigns all associated elements of lower dimension to the surface-view, too.

TSurfaceView has to be a SubsetHandler or MGSubsetHandler compatible type.

References FACEOPT_AUTOGENERATE_EDGES, UG_LOG, VOLOPT_AUTOGENERATE_EDGES, and VOLOPT_AUTOGENERATE_FACES.

§ CreateSurfaceView() [3/3]

§ CreateSweepLineStructs()

bool ug::CreateSweepLineStructs ( vector< SweepLineVertex > &  vrtsOut,
SweepLineEdgeList edgesOut,
const vector< vector2 > &  vrtsIn,
const vector< int > &  edgesIn 
)

For each entry in vrtsIn an entry in vrtsOut is created. However, vertices in vrtsOut are sorted from top to bottom. Each vertex in vrtsOut references all edges in edgesOut, to which it is connected. Directions of edges in edgesOut are CCW, but only if sorting was possible (this is always the case for the outer rim).

References CalculateRightBendVal(), cmp_slv(), ug::SweepLineVertex::connections, ug::SweepLineEdge::get_connected(), ug::SweepLineVertex::isRimVertex, ug::SweepLineVertex::m_status, ug::SweepLineEdge::m_v1, ug::SweepLineEdge::m_v2, SLES_RIM, SLVS_END, SLVS_MERGE, SLVS_NONE, SLVS_REGULAR, SLVS_SPLIT, SLVS_START, UG_LOG, and ug::SweepLineVertex::vrtPtr.

Referenced by TriangleFill_SweepLine().

§ CreateTetrahedron()

static Tetrahedron* ug::CreateTetrahedron ( Grid grid,
vector< Triangle *> &  vTris,
Grid::VertexAttachmentAccessor< APosition > &  aaPos 
)
static

§ CreateUnionOfFunctionGroups() [1/2]

void ug::CreateUnionOfFunctionGroups ( FunctionGroup fctGrp,
const vector< const FunctionGroup *> &  vFctGrp,
bool  sortFct 
)

This function create the union of function groups. Container is clear at beginning.

Parameters
[out]fctGrpUnion of Functions
[in]vFctGrpVector of function group (may contain NULL)
[in]sortFctflag if group should be sorted after adding

References ug::FunctionGroup::add(), ug::FunctionGroup::clear(), ConstSmartPtr< T, FreePolicy >::invalid(), ug::FunctionGroup::set_function_pattern(), ug::FunctionGroup::sort(), UG_CATCH_THROW, and UG_THROW.

Referenced by ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >::set_function_pattern().

§ CreateUnionOfFunctionGroups() [2/2]

void ug::CreateUnionOfFunctionGroups ( FunctionGroup fctGrp,
const vector< const FunctionGroup *> &  vFctGrp,
bool  sortFct 
)

This function create the union of function groups. Container is clear at beginning.

Parameters
[out]fctGrpUnion of Functions
[in]vFctGrpVector of function group (may contain NULL)
[in]sortFctflag if group should be sorted after adding

References ug::FunctionGroup::add(), ug::FunctionGroup::clear(), ConstSmartPtr< T, FreePolicy >::invalid(), ug::FunctionGroup::set_function_pattern(), ug::FunctionGroup::sort(), UG_CATCH_THROW, and UG_THROW.

Referenced by ug::StdDataLinker< DarcyVelocityLinker< dim >, MathVector< dim >, dim >::set_function_pattern().

§ CreateVolumesFromElementIndexList()

static void ug::CreateVolumesFromElementIndexList ( vector< Volume *> &  volsOut,
int *  elemIndexList,
int  elemIndexListSize,
Vertex **  vrts 
)
static

§ CUDA_GetElementFromDevice()

template<typename T >
T ug::CUDA_GetElementFromDevice ( T *  p,
size_t  i = 0 
)

§ CudaCheckStatus()

template<typename T >
void ug::CudaCheckStatus ( status,
const char *  file,
int  line 
)
inline

References CUDAError(), and UG_COND_THROW.

§ CudaCpyToDevice()

template<typename T >
void ug::CudaCpyToDevice ( typename T::value_type dest,
T &  vec 
)
inline

§ CudaCpyToHost()

template<typename T >
void ug::CudaCpyToHost ( T &  dest,
typename T::value_type src 
)
inline

§ CudaCreateAndCopyToDevice()

template<typename T >
T::value_type* ug::CudaCreateAndCopyToDevice ( T &  vec)
inline

§ CUDAError()

const char * ug::CUDAError ( int  err)

Referenced by CudaCheckStatus(), and MyCudaAlloc().

§ cutString()

std::string ug::cutString ( double  d,
size_t  width 
)

References scientificStr().

Referenced by DistributionPercentage().

§ dabs()

double ug::dabs ( double  a)
inline

§ DECLARE_ATTACHMENT_INFO_TRAITS() [1/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< bool >  ,
"bool"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [2/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< char >  ,
"char"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [3/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< byte ,
"byte"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [4/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< int >  ,
"int"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [5/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< uint ,
"uint"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [6/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< float >  ,
"number"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [7/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< double >  ,
"number"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [8/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector1 ,
"vector1"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [9/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector2 ,
"vector2"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [10/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector3 ,
"vector3"   
)

§ DECLARE_ATTACHMENT_INFO_TRAITS() [11/11]

ug::DECLARE_ATTACHMENT_INFO_TRAITS ( Attachment< vector4 ,
"vector4"   
)

§ Decomp() [1/2]

bool ug::Decomp ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  rhs,
size_t &  iNonNullRows,
double  deficitTolerance 
)

§ Decomp() [2/2]

bool ug::Decomp ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  rhs,
size_t &  iNonNullRows,
std::vector< size_t > &  xinterchange,
double  deficitTolerance 
)

References dabs().

Referenced by SolveDeficit().

§ DelaunayDebugSave()

template<class TAAPos >
static void ug::DelaunayDebugSave ( Grid g,
const char *  msg,
DelaunayInfo< TAAPos > &  dinfo 
)
static

Referenced by QualityGridGeneration().

§ DelaunayLineLineIntersection()

static bool ug::DelaunayLineLineIntersection ( vector3 vOut,
const vector3 lineFrom,
const vector3 lineTo,
const vector3 edgeVrt1,
const vector3 edgeVrt2,
vector3  areaNormal,
number  smallsq = SMALL_SQ 
)
static

§ demangle()

std::string ug::demangle ( const char *  str)

demangles C++ function and class names Works only in POSIX, otherwise returns str

Parameters
strmangled string, containing stuff e.g. 3barI5emptyLi17EE
Returns
the demangled string e.g. bar<empty, 17>

Referenced by TypeName().

§ demangle_block()

std::string ug::demangle_block ( const char *  str)

demangles C++ function names like _ZZ12ug_backtracev = ug_backtrace(). also demangles them when a lot of them appear "in between". make sure they are seperated by ' ', '
' or '' and start with _, like they do in backtrace_symbols. Works only in POSIX, otherwise returns str

See also
demangle
Parameters
strmangled strings, e.g. _ZZ12ug_backtracev
Returns
the demangled string e.g. ug_backtrace()

Referenced by get_gcc_backtrace().

§ DeselectBoundarySelectionEdges< MGSelector >()

§ DeselectBoundarySelectionEdges< Selector >()

§ DeselectBoundarySelectionFaces< MGSelector >()

§ DeselectBoundarySelectionFaces< Selector >()

§ DeselectBoundarySelectionVertices< MGSelector >()

§ DeselectBoundarySelectionVertices< Selector >()

§ DeselectFamily() [1/5]

§ DeselectFamily() [2/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Edge elem 
)
static

§ DeselectFamily() [3/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Face elem 
)
static

§ DeselectFamily() [4/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
Volume elem 
)
static

§ DeselectFamily() [5/5]

static void ug::DeselectFamily ( ISelector sel,
MultiGrid mg,
GridObject elem 
)
static

§ Deserialize() [1/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
IndexLayout::Interface interface 
)

References Deserialize().

§ Deserialize() [2/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
IndexLayout layout 
)

§ Deserialize() [3/9]

template<typename T , class TIStream >
void ug::Deserialize ( TIStream &  buf,
ParallelVector< T > &  v 
)

Deerialize for ParallelVector<T>

References ug::ParallelVector< TVector >::set_storage_type().

Referenced by AddConnectionsBetweenSlaves(), pcl::ProcessCommunicator::broadcast(), ug::IDomain< ug::MultiGrid, ug::MultiGridSubsetHandler >::broadcast_refinement_projector(), BroadcastGrid(), Deserialize(), DeserializeAndAddGlobalInterface(), DeserializeAndAddGlobalLayout(), DeserializeInterface(), DeserializeLayout(), DeserializeMatrix(), DeserializeMultiGridElements(), DeserializeParallelData(), DeserializeRow(), DeserializeSubsetHandler(), ug::ComPol_CopyAttachment< TLayout, TAttachment >::extract(), ug::ComPol_GatherVecAttachment< TLayout, TAttachment >::extract(), ug::CommunicationScheme< ConsistencyCheckClass< TVec, TValue >, TValue >::extract(), ug::ComPol_VecCopy< TVector >::extract(), ug::ComPol_SynchronizeDistInfos< TLayout >::extract(), ug::CommunicationScheme< TDerived, bool >::extract(), ug::ComPol_VecScaleCopy< TVector >::extract(), ug::ComPol_VecAdd< TVector >::extract(), ug::ComPol_VecScaleAdd< TVector >::extract(), ug::ComPol_VecAddSetZero< TVector >::extract(), ug::ComPol_CheckDistributedParentStates< TLayout >::extract(), ug::ComPol_VecSubtract< TVector >::extract(), ug::ComPol_NewConstrainedVerticals< TLayout >::extract(), ug::ComPol_CheckConsistency< TVector >::extract(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::extract(), ug::ComPol_MatDistributeDiag< TAlgebra >::extract(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::extract(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::extract(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_band(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_bor(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_land(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_lor(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_max(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_min(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_prod(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::extract_sum(), GetFileLinesParallel(), pcl::ParallelReadFile(), ug::RowSendingScheme< matrix_type >::process(), ug::NewLayoutCreator::process(), ug::ParallelNodes::process(), ug::GeomObjAttachmentSerializer< TGeomObj, TAttachment >::read_data(), ug::SubsetHandlerSerializer::read_data(), ug::SubsetHandlerSerializer::read_info(), ReadFromFile(), ReceiveMatrix(), ReceiveOnInterfaces(), pcl::TestLayoutIsDoubleEnded(), pcl::TestSizeOfInterfacesInLayoutsMatch(), and ug::IDomain< ug::MultiGrid, ug::MultiGridSubsetHandler >::update_subset_infos().

§ Deserialize() [4/9]

template<class TIStream >
void ug::Deserialize ( TIStream &  buf,
pcl::InterfaceCommunicator< IndexLayout > &  ic 
)

§ Deserialize() [5/9]

template<size_t n>
void ug::Deserialize ( std::istream &  buff,
DenseVector< FixedArray1< number, n > > &  vec 
)
inline

§ Deserialize() [6/9]

template<typename T >
void ug::Deserialize ( std::istream &  buff,
DenseVector< VariableArray1< double > > &  vec 
)
inline

§ Deserialize() [7/9]

§ Deserialize() [8/9]

template<typename TValueType , class TIStream >
void ug::Deserialize ( TIStream &  buf,
Vector< TValueType > &  v 
)

§ Deserialize() [9/9]

template<typename T >
void ug::Deserialize ( std::istream &  buff,
const DenseMatrix< VariableArray2< T > > &  mat 
)
inline

References BlockDeserialize().

§ DeserializeAndAddGlobalInterface()

void ug::DeserializeAndAddGlobalInterface ( BinaryBuffer stream,
std::vector< AlgebraID > &  interface 
)

§ DeserializeAndAddGlobalLayout()

void ug::DeserializeAndAddGlobalLayout ( BinaryBuffer stream,
GlobalLayout globalLayout 
)

§ DeserializeInterface()

template<typename TGlobalToLocal >
void ug::DeserializeInterface ( BinaryBuffer stream,
IndexLayout::Interface interface,
const TGlobalToLocal &  globalToLocal 
)

§ DeserializeLayout()

template<typename TGlobalToLocal >
void ug::DeserializeLayout ( BinaryBuffer stream,
IndexLayout layout,
const TGlobalToLocal &  globalToLocal 
)

§ DeserializeParallelData()

template<typename T , class TIStream >
void ug::DeserializeParallelData ( TIStream &  buf,
T &  t,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > &  ic,
pcl::ProcessCommunicator pc 
)

References Deserialize().

§ DeserializeRow()

template<typename TConnectionType >
size_t ug::DeserializeRow ( BinaryBuffer stream,
stdvector< TConnectionType > &  cons,
ParallelNodes PN 
)

§ DeserializeUniquePart() [1/2]

template<typename T , class TIStream >
void ug::DeserializeUniquePart ( TIStream &  buf,
ParallelMatrix< T > &  A 
)

§ DeserializeUniquePart() [2/2]

template<typename TValueType , class TIStream >
void ug::DeserializeUniquePart ( TIStream &  buf,
ParallelVector< TValueType > &  v 
)

§ Determinant()

template<typename T >
MathMatrix<0,0,T>::value_type ug::Determinant ( const MathMatrix< 0, 0, T > &  m)
inline

§ dgetrf_()

void ug::dgetrf_ ( lapack_int m,
lapack_int n,
lapack_double pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

References UG_ASSERT.

Referenced by getrf().

§ dgetri_()

void ug::dgetri_ ( lapack_int n,
lapack_double pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_double pWork,
lapack_int worksize,
lapack_int info 
)

Referenced by getri().

§ dgetrs_()

void ug::dgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const lapack_double pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_double b,
lapack_int ldb,
lapack_int info 
)

References UG_ASSERT.

Referenced by getrs().

§ diag_step()

template<typename Matrix_type , typename Vector_type >
bool ug::diag_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  damp 
)

Performs a jacobi-step.

Parameters
AMatrix \(A = D - L - R\)
xwill be \(x = D^{-1} b \)
bthe vector b.
dampthe damping factor

References InverseMatMult(), and UG_ASSERT.

§ Diag_Vanka_step()

template<typename Matrix_type , typename Vector_type >
bool ug::Diag_Vanka_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  relax 
)

§ DID_REFERENCE_MAPPING()

DebugID ug::DID_REFERENCE_MAPPING ( "REFERENCE_MAPPING"  )

§ DID_REFERENCE_MAPPING_GLOB_TO_LOC()

DebugID ug::DID_REFERENCE_MAPPING_GLOB_TO_LOC ( "REFERENCE_MAPPING_GLOB_TO_LOC"  )

§ DimensionOfSubset()

int ug::DimensionOfSubset ( const ISubsetHandler sh,
int  si 
)

returns the current dimension of the subset

Returns the dimension of geometric objects, that are contained in the subset.

This function returns the dimension of the subset. The dimension is simply defined to be the highest reference dimension of all geometric objects contained in the subset If a InterfaceCommunicator is passed, the highest dimension within all procs in the ProcessCommunicator is returned.

Parameters
[in]shISubsetHandler
[in]siSubset Index
Returns
dimension Dimension of Subset DIM_SUBSET_EMPTY_GRID if empty Grid given

References ug::SubsetInfo::get_property(), ug::ISubsetHandler::subset_info(), ug::Variant::to_int(), and UG_CATCH_THROW.

Referenced by ug::ActiveSet< TDomain, TAlgebra >::active_index(), ug::ObstacleInNormalDir< TDomain, TAlgebra >::adjust_sol_and_cor(), ug::SideAndElemErrEstData< TDomain >::alloc_err_est_data(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_defect(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_jacobian(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_linear(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_mass_matrix(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_rhs(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::assemble_stiffness_matrix(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::calc_error(), ug::ActiveSet< TDomain, TAlgebra >::check_conv(), ug::DegeneratedLayerManager< dim >::close(), CreateGridOfControlVolumes(), CreateGridOfSubControlVolumeFaces(), CreateGridOfSubControlVolumes(), ug::SubsetGroup::dim(), ug::FunctionPattern::dim_subset(), DimensionOfSubsets(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::finish_timestep_elem(), ug::ActiveSet< TDomain, TAlgebra >::lagrange_mat_inv(), ug::DegeneratedLayerManager< dim >::mark_vertices(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::prepare_timestep_elem(), ug::VTKOutput< TDim >::print_subset(), and ug::VTKOutput< TDim >::print_subsets().

§ DimensionOfSubsets()

int ug::DimensionOfSubsets ( const ISubsetHandler sh)

Returns the dimension of geometric objects, that are contained in the subset handler.

This function returns the dimension of the subsets. The dimension is simply defined to be the highest reference dimension of all geometric objects contained the union of all subset If a InterfaceCommunicator is passed, the highest dimension within all procs in the ProcessCommunicator is returned.

Parameters
[in]shISubsetHandler
Returns
dimension Dimension of Subset DIM_SUBSET_EMPTY_GRID if empty Grid given

References dim, DIM_SUBSET_EMPTY_GRID, DimensionOfSubset(), and ug::ISubsetHandler::num_subsets().

Referenced by ug::FunctionPattern::add(), ug::IApproximationSpace::add(), ug::VTKOutput< TDim >::print(), and ug::VTKOutput< TDim >::print_subset().

§ DisplayVacantMemory()

void ug::DisplayVacantMemory ( )

Displays information about memory which has not been freed (yet).

References bMemTracker, EnableMemTracker(), GetBytesSizeString(), memTracker, ug::MemTrackerStruct::pn, ug::MemTrackerStruct::size, and UG_LOG.

§ DistancePointToRay()

template<class vector_t >
number ug::DistancePointToRay ( vector_t &  vOut,
number tOut,
const vector_t &  v,
const vector_t &  from,
const vector_t &  dir 
)
inline

§ DistributeDomain() [1/2]

template<typename TDomain >
static bool ug::DistributeDomain ( TDomain &  domainOut,
PartitionMap partitionMap,
bool  createVerticalInterfaces 
)
static

distributes a already distributed domain onto the specified processes

§ DistributeDomain() [2/2]

§ DistributeExpansionMarks3D()

static void ug::DistributeExpansionMarks3D ( Grid grid,
SubsetHandler sh,
Selector sel,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds,
Grid::VertexAttachmentAccessor< AInt > &  aaMarkVRT,
Grid::EdgeAttachmentAccessor< AInt > &  aaMarkEDGE,
Grid::FaceAttachmentAccessor< AInt > &  aaMarkFACE 
)
static

§ DistributeGrid()

bool ug::DistributeGrid ( MultiGrid mg,
SubsetHandler shPartition,
GridDataSerializationHandler serializer,
bool  createVerticalInterfaces,
const std::vector< int > *  processMap = NULL,
const pcl::ProcessCommunicator procComm = pcl::ProcessCommunicator() 
)

distributes/redistributes parts of possibly distributed grids.

This method is still in development... Use with care!

Note that the method assumes that all data serialized and deserialized is stored in a consistent manner - i.e. that all slaves hold the same values as their associated masters.

The method only considers the partition defined on the elements of highest dimension of the given grid. Elements of lower dimension are simply sent alongside those highest dimensional elements.

The method posts the following messages to the message hub of the specified grid:

  • GridMessage_Distribution(GMDT_DISTRIBUTION_STARTS) at the start of the method
  • GridMessage_Creation(GMCT_CREATION_STARTS) before the local grid is cleared
  • GridMessage_Creation(GMCT_CREATION_STOPS) after the local grid has been rebuilt completely
  • GridMessage_Distribution(GMDT_DISTRIBUTION_STOPS) when the method is done.
Note
??? The partition map shPartition has to fulfill the following requirement: All siblings (all children of a parent) have to be in a common subset (not necessarily the subset of their parent). ???
Parameters
procMapis by default NULL and thus ignored. If you specify it make sure to specify a pointer to an array with size shPartition.num_subsets(). All values in the array have to be in the range [0, pcl:NumProcs()[. The procMap associates a process rank with each subset index.

References ug::GridDataSerializationHandler::add(), aGeomObjID, ug::GridObject::base_object_id(), ug::MGSelector::begin(), ug::GridLayoutMap::clear(), ug::MGSelector::clear(), pcl::CommunicateInvolvedProcesses(), ug::ConstrainingEdge::constrained_edge(), ug::ConstrainingFace::constrained_edge(), ug::ConstrainingFace::constrained_face(), ug::ConstrainingEdge::constrained_vertex(), ug::ConstrainingFace::constrained_vertex(), ug::GridDataSerializationHandler::deserialization_done(), ug::GridDataSerializationHandler::deserialization_starts(), ug::GridDataSerializationHandler::deserialize(), DeserializeMultiGridElements(), ug::DistInfoSupplier::dist_info_attachment(), pcl::ProcessCommunicator::distribute_data(), ug::Grid::distributed_grid_manager(), EDGE, ug::DistributedGridManager::enable_interface_management(), ug::MGSelector::end(), EraseSelectedObjects(), FACE, FillDistInfos(), GDIST_PROFILE, GDIST_PROFILE_END, GDIST_PROFILE_END_, GDIST_PROFILE_FUNC, ug::MGSelector::get_grid_objects(), GetDataPtr(), GMCT_CREATION_STARTS, GMCT_CREATION_STOPS, GMDT_DISTRIBUTION_STARTS, GMDT_DISTRIBUTION_STOPS, ug::DistributedGridManager::grid_layout_map(), ug::DistributedGridManager::grid_layouts_changed(), InvertSelection(), IS_DUMMY, ug::Grid::is_parallel(), ug::ISelector::is_selected(), LG_DIST, ug::Grid::message_hub(), ug::ConstrainingEdge::num_constrained_edges(), ug::ConstrainingFace::num_constrained_edges(), ug::ConstrainingFace::num_constrained_faces(), ug::ConstrainingEdge::num_constrained_vertices(), ug::ConstrainingFace::num_constrained_vertices(), ug::MGSelector::num_levels(), ug::ISubsetHandler::num_subsets(), PCL_DEBUG_BARRIER, pcl::ProcRank(), ug::BinaryBuffer::read(), ug::GridDataSerializationHandler::read_infos(), ug::GridObject::reference_object_id(), ROID_TRIANGLE, SelectElementsForTargetPartition(), ug::GridDataSerializationHandler::serialize(), SerializeMultiGridElements(), ug::ConstrainedVertex::set_constraining_object(), ug::ConstrainedEdge::set_constraining_object(), ug::ConstrainedFace::set_constraining_object(), SynchronizeAttachedGlobalAttachments(), UG_ASSERT, UG_DLOG, UG_LOG, UG_STATIC_ASSERT, UG_THROW, ug::BinaryBuffer::write(), and ug::GridDataSerializationHandler::write_infos().

Referenced by DistributeDomain(), and ug::LoadBalancer::rebalance().

§ DistributionPercentage()

std::string ug::DistributionPercentage ( std::vector< double >  values)

References cutString().

Referenced by checksub().

§ DoFPosition() [1/2]

template<int dim>
bool ug::DoFPosition ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References EDGE, FACE, ReferenceElementDimension(), UG_THROW, VERTEX, and VOLUME.

Referenced by CheckDoFElem(), ug::StdLagrangeElemTransfer< TDomain >::do_restrict(), and ProlongateElemwise().

§ DoFPosition() [2/2]

template<typename TDomain >
bool ug::DoFPosition ( std::vector< MathVector< TDomain::dim > > &  vPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

§ DoFPositionElem()

template<int refDim, int dim>
bool ug::DoFPositionElem ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

§ DoFPositionVertex()

template<int dim>
bool ug::DoFPositionVertex ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

§ DoFRef() [1/4]

template<typename TMatrix >
number& ug::DoFRef ( TMatrix &  mat,
const DoFIndex iInd,
const DoFIndex jInd 
)
inline

References BlockRef().

Referenced by ug::DirichletBoundary< TDomain, TAlgebra >::adjust_error(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_prolongation(), ug::DirichletBoundary< TDomain, TAlgebra >::adjust_restriction(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::apply_blocks(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::apply_blocks_weighted(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation_p1(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), AverageFunctionDifference(), CheckGFforNaN(), ComputeGradientCrouzeixRaviart(), ComputeGradientLagrange1(), ComputeGradientPiecewiseConstant(), ug::AdaptionSurfaceGridFunction< TDomain >::copy_from_surface(), ug::AdaptionSurfaceGridFunction< TDomain >::copy_to_surface(), ug::GridFunctionNumberData< TGridFunction >::eval_and_deriv(), ug::GridFunctionVectorData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientComponentData< TGridFunction >::eval_and_deriv(), ug::GradientEvaluator_LagrangeP1< TFunction >::evaluate(), ug::GlobalGridFunctionNumberData< TGridFunction, elemDim >::evaluate(), ug::ExplicitGridFunctionValue< TGridFunction >::evaluate(), ug::ExplicitGridFunctionGradient< TGridFunction >::evaluate(), ug::GlobalGridFunctionGradientData< TGridFunction >::evaluate(), ug::L2ErrorIntegrand< TGridFunction >::evaluate(), ug::L2DiffIntegrand< TGridFunction >::evaluate(), ug::H1ErrorIntegrand< TGridFunction >::evaluate(), ug::H1DiffIntegrand< TGridFunction >::evaluate(), ug::L2FuncIntegrand< TGridFunction >::evaluate(), ug::StdFuncIntegrand< TGridFunction >::evaluate(), ug::bridge::Evaluate::EvaluateAtVertex(), ug::ComponentGaussSeidel< TDomain, TAlgebra >::extract_blocks(), IntegrateDiscFlux(), IntegrateNormalGradientOnManifold(), InterpolateOnElements(), InterpolateOnElementsInner(), InterpolateOnVertices(), MaxErrorOnElements(), MaxErrorOnVertices(), ug::CompositeConvCheck< TVector, TDomain >::norm(), ug::GridFunctionNumberData< TGridFunction >::operator()(), ug::GridFunctionVectorData< TGridFunction >::operator()(), ProlongateElemwise(), ug::ActiveSet< TDomain, TAlgebra >::residual_lagrange_mult(), RestrictElemwise(), ug::AssemblingTuner< TAlgebra >::set_dirichlet_val(), StdFuncIntegralOnVertex(), SubtractValueFromComponent(), SumGFValuesAt(), ug::IProjGaussSeidel< TDomain, TAlgebra >::truncateVec(), ug::VTKOutput< TDim >::write_cell_values_elementwise(), and ug::VTKOutput< TDim >::write_nodal_values_elementwise().

§ DoFRef() [2/4]

template<typename TMatrix >
const number& ug::DoFRef ( const TMatrix &  mat,
const DoFIndex iInd,
const DoFIndex jInd 
)
inline

References BlockRef().

§ DoFRef() [3/4]

template<typename TVector >
number& ug::DoFRef ( TVector &  vec,
const DoFIndex ind 
)
inline

References BlockRef().

§ DoFRef() [4/4]

template<typename TVector >
const number& ug::DoFRef ( const TVector &  vec,
const DoFIndex ind 
)
inline

References BlockRef().

§ DownCast() [1/2]

template<typename TTo , typename TFrom >
TTo& ug::DownCast ( const TTo &  pfrom,
TFrom &  p 
)

References TypeName(), and UG_ASSERT.

§ DownCast() [2/2]

template<typename TTo , typename TFrom >
TTo& ug::DownCast ( const TTo &  pfrom,
const TFrom &  p 
)

References TypeName(), and UG_ASSERT.

§ Duplicate()

template<class TAPos >
bool ug::Duplicate ( Grid grid,
Selector sel,
const typename TAPos::ValueType &  offset,
TAPos &  aPos,
bool  deselectOld = true,
bool  selectNew = true 
)

§ EdgeExists()

bool ug::EdgeExists ( SweepLineVertex v0,
SweepLineVertex v1 
)

§ EdgeReferenceMappingTest()

void ug::EdgeReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vGlobPos 
)

§ ElementDebugInfo_IMPL()

§ ElementDiameter()

template<typename TElem , typename TDomain >
number ug::ElementDiameter ( TElem &  elem,
TDomain &  domain 
)

References ElementDiameter().

§ ElementDiameterSq()

template<typename TElem , typename TDomain >
number ug::ElementDiameterSq ( TElem &  elem,
TDomain &  domain 
)

References ElementDiameterSq().

§ ElementGaussSeidelStep()

template<typename TGroupObj , typename TDomain , typename TAlgebra >
void ug::ElementGaussSeidelStep ( const typename TAlgebra::matrix_type &  A,
GridFunction< TDomain, TAlgebra > &  c,
const typename TAlgebra::vector_type &  d,
number  relax 
)

§ ElementNormal() [1/2]

template<typename TRefElem , int TWorldDim>
void ug::ElementNormal ( MathVector< TWorldDim > &  normalOut,
const MathVector< TWorldDim > *  vCornerCoords 
)
inline

Normal to an Element in a given Dimension.

Referenced by ElementNormal< ReferenceQuadrilateral, 3 >(), and ElementSize< 3 >().

§ ElementNormal() [2/2]

template<int dim>
void ug::ElementNormal ( ReferenceObjectID  roid,
MathVector< dim > &  normalOut,
const MathVector< dim > *  vCornerCoords 
)
inline

§ ElementNormal< 1 >()

template<>
void ug::ElementNormal< 1 > ( ReferenceObjectID  roid,
MathVector< 1 > &  normalOut,
const MathVector< 1 > *  vCornerCoords 
)
inline

§ ElementNormal< 2 >()

template<>
void ug::ElementNormal< 2 > ( ReferenceObjectID  roid,
MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

§ ElementNormal< 3 >()

§ ElementNormal< ReferenceEdge, 2 >()

template<>
void ug::ElementNormal< ReferenceEdge, 2 > ( MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

Normal to a Line in 2d.

This function returns the normal of a line in 2d. The normal is in clockwise direction to the vector (x1-x0). The norm of the normal is the size of the line.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

Referenced by ElementNormal< 2 >(), ug::fv1_traits_ReferenceFace2d::NormalOnSCVF(), ug::hfv1_traits< ReferenceTriangle, 2 >::NormalOnSCVF(), and ug::hfv1_traits< ReferenceQuadrilateral, 2 >::NormalOnSCVF().

§ ElementNormal< ReferenceEdge, 3 >()

template<>
void ug::ElementNormal< ReferenceEdge, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Line in 3d.

This function returns the normal of a line in 3d. This can only be understood as the normal on an edge in a 2d manifold defined by at least a triangle. Therefore, it is assumed that vCornerCoords contains at least three vertices. The normal is computed as the outer normal on the first edge (v2-v1) of the triangle and embedded in the 2d subspace defined by the triangle. The norm of the normal is the size of the line.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, VecCross(), VecNormalize(), VecScale(), VecSubtract(), and VecTwoNorm().

Referenced by ElementNormal< 3 >().

§ ElementNormal< ReferenceQuadrilateral, 3 >()

template<>
void ug::ElementNormal< ReferenceQuadrilateral, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Quadrilateral in 3d.

This function returns the normal of a quadrilateral in 3d. The orientation is right-handed (i.e. forming with the four fingers of the right hand a circle in direction of the corner nodes, the thumb points in the direction of the normal)

The norm of the normal is the size of the quadrilateral.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References ElementNormal(), VecCross(), VecScale(), and VecSubtract().

Referenced by ElementNormal< 3 >(), ug::fv1_traits< ReferencePyramid, 3 >::NormalOnBF(), and ug::fv1_traits_ReferenceVolume::NormalOnSCVF().

§ ElementNormal< ReferenceTriangle, 3 >()

template<>
void ug::ElementNormal< ReferenceTriangle, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Triangle in 3d.

This function returns the normal of a triangle in 3d. The orientation is right-handed (i.e. forming with the four fingers of the right hand a circle in direction of the corner nodes, the thumb points in the direction of the normal)

The norm of the normal is the size of the triangle.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References VecCross(), VecScale(), and VecSubtract().

Referenced by ElementNormal< 3 >(), ug::fv1_traits< ReferencePyramid, 3 >::NormalOnSCVF(), ug::hfv1_traits< ReferenceTetrahedron, 3 >::NormalOnSCVF(), ug::hfv1_traits< ReferencePrism, 3 >::NormalOnSCVF(), ug::hfv1_traits< ReferencePyramid, 3 >::NormalOnSCVF(), ug::hfv1_traits< ReferenceHexahedron, 3 >::NormalOnSCVF(), ug::hfv1_traits< ReferenceOctahedron, 3 >::NormalOnSCVF(), and ug::fv1_traits_ReferenceFace3d::NormalOnSCVF_Face().

§ ElementNormal< ReferenceVertex, 1 >()

template<>
void ug::ElementNormal< ReferenceVertex, 1 > ( MathVector< 1 > &  normalOut,
const MathVector< 1 > *  vCornerCoords 
)
inline

Normal to a Point in 1d.

This function returns the normal of a point in 1d. This always 1.0.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

Referenced by ElementNormal< 1 >(), ug::fv1_traits< ReferenceEdge, 1 >::NormalOnSCVF(), and ug::hfv1_traits< ReferenceEdge, 1 >::NormalOnSCVF().

§ ElementNormal< ReferenceVertex, 2 >()

template<>
void ug::ElementNormal< ReferenceVertex, 2 > ( MathVector< 2 > &  normalOut,
const MathVector< 2 > *  vCornerCoords 
)
inline

Normal to a Point in 2d.

This function returns the normal of a point in 2d. This can only be understood as the normal on a corner of an edge in 2d. Therefore, it will be assumed that vCornerCoords has exactly 2 entries defining the edge. Then the normal is the one-dim. normal on the first vertex embedded in the 1D subspace defined by the edge.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, and VecNormalize().

Referenced by ElementNormal< 2 >().

§ ElementNormal< ReferenceVertex, 3 >()

template<>
void ug::ElementNormal< ReferenceVertex, 3 > ( MathVector< 3 > &  normalOut,
const MathVector< 3 > *  vCornerCoords 
)
inline

Normal to a Point in 3d.

This function returns the normal of a point in 3d. This can only be understood as the normal on a corner of an edge in 3d. Therefore, it will be assumed that vCornerCoords has exactly 2 entries defining the edge. Then the normal is the one-dim. normal on the first vertex embedded in the 1D subspace defined by the edge.

Parameters
[in]vCornerCoordsVector of corner coordinates
[out]normalOutNormal

References UG_CATCH_THROW, and VecNormalize().

Referenced by ElementNormal< 3 >().

§ ElementSideRayIntersection()

template<typename TRefElem , int TWorldDim>
bool ug::ElementSideRayIntersection ( size_t &  sideOut,
MathVector< TWorldDim > &  GlobalIntersectionPointOut,
MathVector< TRefElem::dim > &  LocalIntersectionPoint,
const MathVector< TWorldDim > &  From,
const MathVector< TWorldDim > &  Direction,
bool  bPositiv,
const MathVector< TWorldDim > *  vCornerCoords 
)

ElementSideRayIntersection.

This function computes the side of element, that is intersected by a Ray given in Parameter form by 'From + c * Direction'. The intersection is choose to be at positive parameter if bPositiv == true, else the intersection at negative parameter is choosen. Global and local coordinates of the intersection points are returned as well as the reference element number of the side.

Parameters
[in]FromPoint of Ray
[in]DirectionDirection of Ray
[in]bPositivFlag, whether to search in positiv of negative direction
[in]vCornerCoordsVector of corner coordinates
[out]sideOutside of intersection
[out]GlobalIntersectionPointOutIntersection Point (global)
[out]LocalIntersectionPointIntersection Point (local)

References ug::ElementSideRayIntersectionWrapper< TRefElem, TWorldDim, TRefDim >::apply(), UG_ASSERT, and VecTwoNorm().

§ ElementSize() [1/2]

template<typename TRefElem , int TWorldDim>
number ug::ElementSize ( const MathVector< TWorldDim > *  vCornerCoords)
inline

Volume of an Element in a given Dimension.

Referenced by ElementSize(), and ElementSize< ReferenceOctahedron, 3 >().

§ ElementSize() [2/2]

template<int dim>
number ug::ElementSize ( ReferenceObjectID  roid,
const MathVector< dim > *  vCornerCoords 
)
inline

§ ElementSize< 1 >()

template<>
number ug::ElementSize< 1 > ( ReferenceObjectID  roid,
const MathVector< 1 > *  vCornerCoords 
)
inline

§ ElementSize< 2 >()

§ ElementSize< 3 >()

§ ElementSize< ReferenceEdge, 1 >()

template<>
number ug::ElementSize< ReferenceEdge, 1 > ( const MathVector< 1 > *  vCornerCoords)
inline

Volume of a Line in 1d.

This function returns the volume of a line in 1d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 1 >().

§ ElementSize< ReferenceEdge, 2 >()

template<>
number ug::ElementSize< ReferenceEdge, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Line in 2d.

This function returns the volume of a line in 2d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 2 >().

§ ElementSize< ReferenceEdge, 3 >()

template<>
number ug::ElementSize< ReferenceEdge, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Line in 3d.

This function returns the volume of a line in 3d.

Parameters
[in]vCornerCoordsVector of corner coordinates (2 corners)
Returns
number Volume of Line

References VecDistance().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferenceHexahedron, 3 >()

template<>
number ug::ElementSize< ReferenceHexahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Hexahedron in 3d.

This function returns the volume of a hexahedron in 3d. Therefore, the element is divided into two prisms: 1) {x0, x_1, x_2, x_4; x_5, x_6} and 2) {x0, x_2, x_3, x_4; x_6, x_7}

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (8 corners)
Returns
number Volume of Hexahedron

References VecAppend(), VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferenceOctahedron, 3 >()

template<>
number ug::ElementSize< ReferenceOctahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of an Octahedron in 3d.

This function returns the volume of an octhedron in 3d by calculating the volumes of the upper and lower pyramid the octahedron consists of. The pyramidal volumes are computed via: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (6 corners)
Returns
number Volume of Octahedron

References ElementSize(), VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferencePrism, 3 >()

template<>
number ug::ElementSize< ReferencePrism, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Prism in 3d.

This function returns the volume of a prism in 3d. Therefore, the element is divided into pyramid {x0, x_1, x_4, x_3; x_5} and a tetrahedron {x_0, x_1, x_2; x_5}, whose volumes are computed and added.

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (6 corners)
Returns
number Volume of Prism

References VecAppend(), VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferencePyramid, 3 >()

template<>
number ug::ElementSize< ReferencePyramid, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Pyramid in 3d.

This function returns the volume of a pyramid in 3d. The volume is computed via: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height

The corner coordinates must be given as prescribed by the reference element

Parameters
[in]vCornerCoordsVector of corner coordinates (5 corners)
Returns
number Volume of Pyramid

References VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferenceQuadrilateral, 2 >()

template<>
number ug::ElementSize< ReferenceQuadrilateral, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Quadrilateral in 2d.

This function returns the volume of a quadrilateral in 2d. The Volume is computed via: F = 1/2 * | (y3-y1)*(x2-x0) - (x3-x1)*(y2-y0) |

Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Quadrilateral

Referenced by ElementSize< 2 >().

§ ElementSize< ReferenceQuadrilateral, 3 >()

template<>
number ug::ElementSize< ReferenceQuadrilateral, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Quadrilateral in 3d.

This function returns the volume of a quadrilateral in 3d. The Volume is computed via: F = 1/2 * | (c - a) x (d - b) | (Here, a,b,c,d are the vectors of the corners)

The corner coordinates must be given in counter - clockwise order

Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Quadrilateral

References VecCross(), VecSubtract(), and VecTwoNorm().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferenceTetrahedron, 3 >()

template<>
number ug::ElementSize< ReferenceTetrahedron, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Tetrahedron in 3d.

This function returns the volume of a tetrahedron in 3d. The Volume is computed via: V = 1/6 * | ( (b - a) x (c - a) ) * (d - a) | (Here, a,b,c,d are the vectors of the corners)

This is motivated by the formula: V = 1/3 * (S * h) with

  • S is the area of the base
  • h is the height
Parameters
[in]vCornerCoordsVector of corner coordinates (4 corners)
Returns
number Volume of Tetrahedron

References VecCross(), VecDot(), and VecSubtract().

Referenced by ElementSize< 3 >().

§ ElementSize< ReferenceTriangle, 2 >()

template<>
number ug::ElementSize< ReferenceTriangle, 2 > ( const MathVector< 2 > *  vCornerCoords)
inline

Volume of a Triangle in 2d.

This function returns the volume of a triangle in 2d. The Volume is computed via: F = 1/2 * fabs( (x2-x1)*(y1-y0) - (x1-x0)*(y2-y0) )

Parameters
[in]vCornerCoordsVector of corner coordinates (3 corners)
Returns
number Volume of Triangle

Referenced by ElementSize< 2 >().

§ ElementSize< ReferenceTriangle, 3 >()

template<>
number ug::ElementSize< ReferenceTriangle, 3 > ( const MathVector< 3 > *  vCornerCoords)
inline

Volume of a Triangle in 3d.

This function returns the volume of a triangle in 3d. The Volume is computed via: F = 1/2 * | (c - a) x (b - a) | (Here, a,b,c are the vectors of the corners)

Parameters
[in]vCornerCoordsVector of corner coordinates (3 corners)
Returns
number Volume of Triangle

References VecCross(), VecSubtract(), and VecTwoNorm().

Referenced by ElementSize< 3 >().

§ EliminateInvalidCells()

template<class T >
bool ug::EliminateInvalidCells ( Field< T > &  field,
const T &  noDataValue 
)

eliminates invalid cells by repeatedly filling those cells with averages of neighboring cells

The field has to contain at least one valid cell. If it doesn't, false is returned. The value type T has to support operators += and *= and = 0

References ug::Field< T >::at(), ug::Field< T >::height(), UG_COND_THROW, and ug::Field< T >::width().

Referenced by ug::Heightfield::eliminate_invalid_cells(), and ug::RasterLayers::eliminate_invalid_cells().

§ EnableDelaunayDebugSave()

static void ug::EnableDelaunayDebugSave ( bool  enable = true)
static

Referenced by QualityGridGeneration().

§ EnableMemTracker()

bool ug::EnableMemTracker ( bool  b)

With EnableMemTracker(true) you start the memory profiling, with EnableMemTracker(false) you stop it. If you have a section you don't want to be measured, use this code bool bMTEnabled = EnableMemTracker(false);

CallToFunctionWhichShouldNotBeProfiled();
EnableMemTracker(bMTEnabled);

EnableMemTracker(false) has to be called before pcl::Finalize();

Parameters
bif true, mem tracking is on, if false, it is off.
Returns
previous state.

References bMemTracker.

Referenced by DisplayVacantMemory(), main(), UGFinalizeNoPCLFinalize(), and UpdateTotalMem().

§ EnergyNorm() [1/2]

template<typename matrix_type , typename vector_type >
double ug::EnergyNorm ( vector_type &  x,
matrix_type &  A,
vector_type &  tmp 
)

References EnergyProd().

§ EnergyNorm() [2/2]

template<typename matrix_type , typename vector_type >
double ug::EnergyNorm ( vector_type &  x,
matrix_type &  A 
)

References CloneVector(), and EnergyProd().

§ EnergyProd() [1/4]

template<typename matrix_type , typename vector_type >
double ug::EnergyProd ( vector_type &  v1,
matrix_type &  A,
vector_type &  v2,
vector_type &  tmp 
)

References PINVIT_PROFILE_FUNC, and PST_CONSISTENT.

Referenced by EnergyNorm(), and EnergyProd().

§ EnergyProd() [2/4]

template<typename matrix_type , typename vector_type >
double ug::EnergyProd ( vector_type &  v1,
matrix_type &  A,
vector_type &  v2 
)

References CloneVector(), and EnergyProd().

§ EnergyProd() [3/4]

double ug::EnergyProd ( double  v1,
double  M,
double  v2 
)
inline

§ EnergyProd() [4/4]

template<typename T1 , typename T2 >
double ug::EnergyProd ( const T1 &  v1,
const DenseMatrix< T2 > &  M,
const T1 &  v2 
)
inline

§ EraseEmptySubsets()

§ EraseSelectedObjects< MGSelector >()

§ EraseSelectedObjects< Selector >()

template void ug::EraseSelectedObjects< Selector > ( Selector )

§ ErrorStringFromStdException()

std::string ug::ErrorStringFromStdException ( const std::exception *  pex)

Referenced by ug::UGError::UGError().

§ EvaluateGradientJump_Norm()

template<typename TGradientEvaluator , typename TFunction >
void ug::EvaluateGradientJump_Norm ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

calculates the length of the gradient in each element and then fills aaError depending on the difference in length between neighbored elements.

References CalculateVolume(), dim, ug::PointerConstArray< TPtr >::size(), and VecTwoNorm().

§ EvaluateGradientJump_SideIntegral()

template<typename TGradientEvaluator , typename TFunction >
void ug::EvaluateGradientJump_SideIntegral ( TFunction &  u,
size_t  fct,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError,
bool  addErrSquareToAAError = false 
)

Calculates the jump between normal components of element-gradients on element sides, then calculates the integral over those jumps on each side and finally sums those integrals into aaError.

References CalculateOuterNormal(), CalculateVolume(), dim, ElementDiameter(), sq(), and VecDot().

§ EvaluateResidualErrorP1()

template<typename TFunction >
void ug::EvaluateResidualErrorP1 ( SmartPtr< TFunction >  u,
SmartPtr< UserData< number, TFunction::dim > >  f,
const char *  cmp,
number  time,
int  quadOrder,
std::string  quadType,
MultiGrid::AttachmentAccessor< typename TFunction::element_type, ug::Attachment< number > > &  aaError 
)

Evaluates the residual error for P1 shape functions (with some simplifications)

References dim, ElementDiameterSq(), make_sp(), and UG_COND_THROW.

Referenced by MarkForAdaption_ResidualErrorP1Absolute(), and MarkForAdaption_ResidualErrorP1Relative().

§ ExchangeAndAdjustSideErrors()

template<class side_t , class TFunction >
void ug::ExchangeAndAdjustSideErrors ( TFunction &  u,
ANumber  aSideError,
ANumber  aNumElems 
)

Exchages error-values and nbr-element-numbers between distributed sides and adjusts those values in rim-shadows and rim-shadowing elements on the fly (e.g. constrained and constraining elements).

Parameters
[in]uThe grid-function on which error-indication is based
[in]aSideErrorANumber attachment on side_t: The total error accumulated in element-sides.
[in]aNumElemsANumber attachment on side_t: The number of elements which have contributed to aSideError.

References pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::DistributedGridManager::grid_layout_map(), INT_H_MASTER, INT_H_SLAVE, INT_V_MASTER, INT_V_SLAVE, ug::Flag< TEnum, TStorageType, defaultValue >::partially_contains(), PCL_RO_SUM, ug::SurfaceView::SHADOW_RIM, ug::GridLevel::SURFACE, and ug::SurfaceView::surface_state().

§ ExpandFractures2d() [1/2]

bool ug::ExpandFractures2d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

1 dimensional fractures specified in fracInfos are expanded to 2 dimensional subsets. the resulting fractures will then consist of 2 layers of quadrilaterals. On the boundaries triangles are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::GridSubsetHandler::begin(), ug::Selector::begin(), CalculateBoundaryVertexNormal2D(), CalculateCreaseNormal(), CollectEdges(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::GridSubsetHandler::end(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

§ ExpandFractures2d() [2/2]

bool ug::ExpandFractures2d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

1 dimensional fractures specified in fracInfos are expanded to 2 dimensional subsets. the resulting fractures will then consist of 2 layers of quadrilaterals. On the boundaries triangles are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::GridSubsetHandler::begin(), ug::Selector::begin(), CalculateBoundaryVertexNormal2D(), CalculateCreaseNormal(), CollectEdges(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::GridSubsetHandler::end(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

§ ExpandFractures3d() [1/2]

bool ug::ExpandFractures3d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

2 dimensional fractures specified in fracInfos are expanded to 3 dimensional subsets. the resulting fractures will then consist of 2 layers of hexahedrons. On the boundaries tetrahedrons, prisms and pyramids are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces_dv(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::attach_to_volumes(), ug::Selector::begin(), CalculateBoundaryVertexNormal3D(), CalculateCreaseNormal(), CollectFaces(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Grid::detach_from_volumes(), DistributeExpansionMarks3D(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::ISelector::enable_strict_inheritance(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::get_edge(), ug::Grid::get_face(), ug::Volume::get_local_vertex_indices_of_edge(), ug::Volume::get_local_vertex_indices_of_face(), ug::Grid::get_side(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex3D(), ug::Volume::num_edges(), ug::Volume::num_faces(), ug::Volume::num_sides(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::VolumeDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ProjectPointToPlane(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::VolumeVertices::vertex(), ug::Selector::vertices_begin(), ug::Selector::vertices_end(), VOLOPT_AUTOGENERATE_FACES, ug::Selector::volumes_begin(), and ug::Selector::volumes_end().

§ ExpandFractures3d() [2/2]

bool ug::ExpandFractures3d ( Grid grid,
SubsetHandler sh,
const vector< FractureInfo > &  fracInfos,
bool  expandInnerFracBnds,
bool  expandOuterFracBnds 
)

This algorithm indirectly uses Grid::mark.

2 dimensional fractures specified in fracInfos are expanded to 3 dimensional subsets. the resulting fractures will then consist of 2 layers of hexahedrons. On the boundaries tetrahedrons, prisms and pyramids are inserted.

Through expandFracBoundaries you can tell the algorithm whether inner fracture boundaries shall be expanded. Note that this means that an additional node is introduced at each inner fracture boundary vertex and that the associated fracture elements are connected at two sides. Note that fractures are always expanded at boundaries which lie on the geometries boundary.

This algorithm requires the option FACEOPT_AUTOGENERATE_EDGES. The option is automatically enabled if required.

This algorithm requires the option VOLOPT_AUTOGENERATE_FACES. The option is automatically enabled if required.

References aPosition, ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces_dv(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::attach_to_volumes(), ug::Selector::begin(), CalculateBoundaryVertexNormal3D(), CalculateCreaseNormal(), CollectFaces(), ug::Grid::create(), ug::Grid::create_by_cloning(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), ug::Grid::detach_from_volumes(), DistributeExpansionMarks3D(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::ISelector::enable_strict_inheritance(), ug::Selector::end(), ug::Grid::erase(), FACEOPT_AUTOGENERATE_EDGES, ug::Grid::get_edge(), ug::Grid::get_face(), ug::Volume::get_local_vertex_indices_of_edge(), ug::Volume::get_local_vertex_indices_of_face(), ug::Grid::get_side(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), IsBoundaryVertex3D(), ug::Volume::num_edges(), ug::Volume::num_faces(), ug::Volume::num_sides(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::VolumeVertices::num_vertices(), ug::VolumeDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ProjectPointToPlane(), ug::FaceDescriptor::set_num_vertices(), ug::VolumeDescriptor::set_num_vertices(), ug::FaceDescriptor::set_vertex(), ug::VolumeDescriptor::set_vertex(), SMALL, UG_LOG, VecAdd(), VecDistanceSq(), VecDot(), VecLengthSq(), VecNormalize(), VecScale(), ug::VolumeVertices::vertex(), ug::Selector::vertices_begin(), ug::Selector::vertices_end(), VOLOPT_AUTOGENERATE_FACES, ug::Selector::volumes_begin(), and ug::Selector::volumes_end().

§ ExportGridToSMESH() [1/2]

bool ug::ExportGridToSMESH ( Grid grid,
const char *  filename,
AVector3 aPos,
std::vector< AFloat > *  pvNodeAttributes = NULL,
AInt paNodeBoundaryMarker = NULL,
AInt paFaceBoundaryMarker = NULL,
std::vector< vector3 > *  pvHoles = NULL,
std::vector< vector3 > *  pvRegionPositions = NULL,
std::vector< int > *  pvRegionAttributes = NULL,
std::vector< float > *  pvRegionVolumeConstraints = NULL 
)

writes an SMESH file.

Be sure that grid consists of closed, 2-dimensional surfaces. except of grid, filename and aPos, all parameters are optional. Be sure that all attachments that you pass to the method have been properly attached. If you don't want to specify a parameter simply pass NULL. meaning of optional parameters: pvNodeAttributes: a vector that holds attachments of type AFloat, which store vertex-attributes. paNodeBoundaryMarker: specifies the boundary-index of a vertex. paFaceBoundaryMarker: specifies the boundary-index of a face. pvHoles: specifies where holes are located. pvRegionPositions: specifies where regions are located. vRegionAttributes: specifies the attribute of a region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified. vRegionVolumeConstraints: specifies the maximal volume of a tetrahedron in each region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified.

References ug::Grid::AttachmentAccessor< Vertex, TAttachment >::access(), ug::Grid::AttachmentAccessor< Face, TAttachment >::access(), ug::Grid::attach_to_vertices(), ug::Grid::detach_from_vertices(), ug::Grid::faces_begin(), ug::Grid::faces_end(), ug::Grid::has_vertex_attachment(), ug::Grid::num_faces(), ug::FaceVertices::num_vertices(), ug::Grid::num_vertices(), ug::FaceVertices::vertex(), ug::Grid::vertices_begin(), and ug::Grid::vertices_end().

Referenced by SaveGrid3d_IMPL().

§ ExportGridToSMESH() [2/2]

bool ug::ExportGridToSMESH ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler psh = NULL,
std::vector< AFloat > *  pvNodeAttributes = NULL,
std::vector< vector3 > *  pvHoles = NULL,
std::vector< vector3 > *  pvRegionPositions = NULL,
std::vector< int > *  pvRegionAttributes = NULL,
std::vector< float > *  pvRegionVolumeConstraints = NULL 
)

writes an SMESH file.

Be sure that grid consists of closed, 2-dimensional surfaces. except of grid, filename and aPos, all parameters are optional. Be sure that all attachments that you pass to the method have been properly attached. If you don't want to specify a parameter simply pass NULL. meaning of optional parameters: pvNodeAttributes: a vector that holds attachments of type AFloat, which store vertex-attributes. psh: subset-handler specifying boundary-indices of vertices and faces. pvHoles: specifies where holes are located. pvRegionPositions: specifies where regions are located. vRegionAttributes: specifies the attribute of a region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified. vRegionVolumeConstraints: specifies the maximal volume of a tetrahedron in each region. Has to be of the same size as vRegionPositions. Will only be used if pvRegionAttributes has been specified.

References ug::Grid::attach_to_vertices(), ug::Grid::detach_from_vertices(), ug::Grid::faces_begin(), ug::Grid::faces_end(), ug::ISubsetHandler::get_subset_index(), ug::Grid::has_vertex_attachment(), ug::Grid::num_faces(), ug::FaceVertices::num_vertices(), ug::Grid::num_vertices(), ug::FaceVertices::vertex(), ug::Grid::vertices_begin(), and ug::Grid::vertices_end().

§ ExportGridToTETGEN()

§ ExportGridToTIKZ()

§ ExportGridToUG()

bool ug::ExportGridToUG ( const Grid g,
const SubsetHandler shFace,
const SubsetHandler shVolume,
const char *  fileNamePrefix,
const char *  lgmName,
const char *  problemName,
int  convex 
)

converts tetgen files (*.node, *.face and *.ele) to UG files (*.lgm, *.ng)

PLEASE NOTE: This algorithm uses Grid::mark shFace has to contain the interface-faces that separate the different volume-subsets (specified in shVolume).

lgmName, problemName and convex correlate to the parameters that appear at the beginning of each lgm-file.

References aPosition, ug::Grid::attach_to_edges(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices(), ug::GridSubsetHandler::begin(), ug::TElemSelector< TBaseElem >::begin(), CollectAllVerticesForNG(), CollectInnerVertices(), CollectLines(), CollectSurfaceVertices(), EDGEOPT_STORE_ASSOCIATED_FACES, ug::Grid::enable_options(), ug::GridSubsetHandler::end(), ug::TElemSelector< TBaseElem >::end(), FACEOPT_AUTOGENERATE_EDGES, FACEOPT_STORE_ASSOCIATED_EDGES, FixFaceOrientation(), ug::GridSubsetHandler::num(), ug::ISubsetHandler::num_subsets(), SHE_FACE, SHE_VOLUME, UG_LOG, VRTOPT_STORE_ASSOCIATED_FACES, WriteLGM(), and WriteNG().

§ ExportGridToUG_2D()

§ ExtendSelection< MGSelector >()

template void ug::ExtendSelection< MGSelector > ( MGSelector sel,
size_t  extSize,
ISelector::status_t  status 
)

Referenced by ExtendSelection().

§ ExtendSelection< Selector >()

template void ug::ExtendSelection< Selector > ( Selector sel,
size_t  extSize,
ISelector::status_t  status 
)

Referenced by ExtendSelection().

§ extract_path()

string ug::extract_path ( const string &  filename)

§ ExtractAlgebraIndices()

template<typename TDomain >
void ug::ExtractAlgebraIndices ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< size_t > &  fctIndex 
)

Checks that DoF Positions equal wheather they are extracted by a macroelement or a subelement.

References EDGE, FACE, ug::DoFDistributionInfoProvider::max_dofs(), ug::DoFDistribution::num_indices(), VERTEX, and VOLUME.

Referenced by CheckDoFPositions().

§ ExtractAlgebraIndices2()

§ ExtractPositions() [1/4]

template<typename TFunction >
void ug::ExtractPositions ( const TFunction &  u,
std::vector< MathVector< TFunction::domain_type::dim > > &  vPos 
)

extracts the positions of the degrees of freedom and stores them into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
uthe underlying grid function
vPosthe array of positions (to be filled)

References CheckDoFPositions(), and ExtractPositions().

§ ExtractPositions() [2/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

extracts the positions of the degrees of freedom and stores them into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
vPosthe array of positions (to be filled)

References EDGE, FACE, ug::DoFDistributionInfoProvider::max_dofs(), ug::DoFDistribution::num_indices(), VERTEX, and VOLUME.

Referenced by CheckDoFPositions(), ExtractPositions(), ug::GridFunctionPositionProvider< TGridFunction >::get_positions(), OrderDirectionYForDofDist(), OrderDirectionZForDofDist(), OrderLexForDofDist(), WriteMatrixToConnectionViewer(), WriteVectorCSV(), and WriteVectorToConnectionViewer().

§ ExtractPositions() [3/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

extracts the positions of the degrees of freedom and stores them together with the index in a std::pair into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
vPosthe array of positions (to be filled)

References EDGE, FACE, ug::DoFDistributionInfoProvider::max_dofs(), ug::DoFDistribution::num_indices(), VERTEX, and VOLUME.

§ ExtractPositions() [4/4]

template<typename TDomain >
void ug::ExtractPositions ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
const size_t  fct,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

extracts the positions of the degrees of freedom of a component and stores them together with the index in a std::pair into the passed vector at the position of the algebraic index corresponding to the degree of freedom.

Parameters
domainthe underlying domain
ddthe dof distribution
fctthe component of the trial space
vPosthe array of positions (to be filled)

References EDGE, FACE, ug::DoFDistributionInfoProvider::max_dofs(), VERTEX, and VOLUME.

§ ExtractPositionsElem() [1/3]

§ ExtractPositionsElem() [2/3]

§ ExtractPositionsElem() [3/3]

§ ExtractPositionsVertex() [1/2]

template<typename TDomain >
void ug::ExtractPositionsVertex ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< MathVector< TDomain::dim > > &  vPos 
)

§ ExtractPositionsVertex() [2/2]

template<typename TDomain >
void ug::ExtractPositionsVertex ( ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd,
std::vector< std::pair< MathVector< TDomain::dim >, size_t > > &  vPosPair 
)

§ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector1 > > > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector1 ,
Grid::VertexAttachmentAccessor< Attachment< vector1 > >  ,
uint  ,
std::vector< Volume *> *   
)

§ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector2 > > > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector2 ,
Grid::VertexAttachmentAccessor< Attachment< vector2 > >  ,
uint  ,
std::vector< Volume *> *   
)

§ Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > >()

template void ug::Extrude< Grid::VertexAttachmentAccessor< Attachment< vector3 > > > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector3 ,
Grid::VertexAttachmentAccessor< Attachment< vector3 > >  ,
uint  ,
std::vector< Volume *> *   
)

§ Extrude< vector1 >()

template void ug::Extrude< vector1 > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector1 ,
uint  ,
Attachment< vector1 > &  ,
std::vector< Volume *> *   
)

Referenced by Extrude().

§ Extrude< vector2 >()

template void ug::Extrude< vector2 > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector2 ,
uint  ,
Attachment< vector2 > &  ,
std::vector< Volume *> *   
)

Referenced by Extrude().

§ Extrude< vector3 >()

template void ug::Extrude< vector3 > ( Grid ,
std::vector< Vertex *> *  ,
std::vector< Edge *> *  ,
std::vector< Face *> *  ,
const vector3 ,
uint  ,
Attachment< vector3 > &  ,
std::vector< Volume *> *   
)

Referenced by Extrude().

§ ExtrudeCylinder()

§ ExtrudeLayers()

void ug::ExtrudeLayers ( Grid grid,
const RasterLayers layers,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
ISubsetHandler sh,
bool  allowForTetsAndPyras 
)

grid has to contain a triangluation of the surface grid of raster-layers. Only x- and y- coordinates of the vertices of the reference triangulation are considered, since all vertices are projected to their respective layers. By setting 'allowForTetsAndPyras = true', one will receive less elements. By setting 'allowForTetsAndPyras = false', the resulting mesh will consist of (possibly rather flat) prisms only.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), ug::Grid::attach_to_vertices(), ug::Grid::attach_to_vertices_dv(), ug::Grid::begin(), ug::Grid::begin_marking(), CalculateCenter(), ug::Grid::clear_marks(), CollapseEdge(), ug::Grid::detach_from_vertices(), ug::Grid::end(), end_for, ug::Grid::end_marking(), EO_DEFAULT, ug::ISubsetHandler::erase_subset(), Extrude(), for_each_in_vec, ug::ISubsetHandler::get_subset_index(), GetConnectedVertex(), ug::RasterLayers::layer_t::heightfield, ug::Heightfield::interpolate(), ug::Grid::is_marked(), lg_end_for, lg_for_each, lg_for_each_vertex_in_elem, ug::Grid::mark(), ug::RasterLayers::min_height(), ug::Heightfield::no_data_value(), ug::Grid::num_faces(), ug::RasterLayers::num_layers(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::Grid::num_vertices(), ug::AssocElemIter< TElem, TAssocElem, VSorted >::reinit(), ug::Grid::reserve(), ug::RasterLayers::size(), ug::PointerConstArray< TPtr >::size(), SMALL, ug::RasterLayers::top(), ug::RasterLayers::trace_line_down(), ug::RasterLayers::trace_line_up(), UG_COND_THROW, UG_LOG, ug::AssocElemIter< TElem, TAssocElem, VSorted >::valid(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertices().

§ ExtrusionHelper_CheckOrientation() [1/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector1 > > &  aaPos 
)
static

References UG_THROW.

§ ExtrusionHelper_CheckOrientation() [2/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector2 > > &  aaPos 
)
static

References UG_THROW.

§ ExtrusionHelper_CheckOrientation() [3/3]

static bool ug::ExtrusionHelper_CheckOrientation ( Volume v,
Grid::VertexAttachmentAccessor< Attachment< vector3 > > &  aaPos 
)
static

References CheckOrientation().

Referenced by Extrude().

§ FaceIsOnRightSide()

static bool ug::FaceIsOnRightSide ( Face f,
Edge e 
)
static

§ FacePlane()

static int ug::FacePlane ( const vector3 p)
static

Referenced by CheckPoint(), and TriCubeIntersection().

§ FactorizeILU()

template<typename Matrix_type >
bool ug::FactorizeILU ( Matrix_type &  A)

§ FactorizeILUBeta()

template<typename Matrix_type >
bool ug::FactorizeILUBeta ( Matrix_type &  A,
number  beta 
)

§ FactorizeILUSorted()

template<typename Matrix_type >
bool ug::FactorizeILUSorted ( Matrix_type &  A,
const number  eps = 1e-50 
)

§ FilenameWithoutExtension()

string ug::FilenameWithoutExtension ( string  str)

§ FilenameWithoutPath()

§ FillCornerCoordinates()

§ FillDistInfos()

static void ug::FillDistInfos ( MultiGrid mg,
SubsetHandler shPartition,
MGSelector msel,
DistInfoSupplier distInfos,
const std::vector< int > *  processMap,
const pcl::ProcessCommunicator procComm,
bool  createVerticalInterfaces,
vector< bool > &  partitionIsEmpty 
)
static
Parameters
partitionIsEmptyIf no elements are selected for a target-partition, the corresponding entry is set to false. This can happen even if shPartition contains elements for that partition: vmaster elements whose parents are not sent to the same partition don't have to be sent either and are thus ignored...

References ug::MGSelector::clear(), ug::MGSelector::empty(), GDIST_PROFILE_FUNC, LG_DIST, ug::ISubsetHandler::num_subsets(), pcl::ProcRank(), SelectElementsForTargetPartition(), and UG_DLOG.

Referenced by DistributeGrid().

§ find()

IndexLayout::Interface::iterator ug::find ( IndexLayout::Interface interface,
size_t  i 
)
inline

§ find_pid()

template<typename TLayout >
TLayout::iterator ug::find_pid ( TLayout &  layout,
int  pid 
)
Parameters
layoutlayout to search
pidproc_id to find
Returns
layout.end() if not found, else it so that layout.proc_id(it) == pid

References CreateLocalAlgebraLayouts().

§ FindCloseVertexInArray()

template<class TAAPosVRT >
int ug::FindCloseVertexInArray ( std::vector< Vertex *> &  array,
const typename TAAPosVRT::ValueType &  p,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

returns the index of the first vertex closer to p than snapThreshold.

returns -1 if nothing was found.

References VecDistanceSq().

Referenced by ResolveTriangleIntersections().

§ FindContainingElement()

template<class tree_t >
bool ug::FindContainingElement ( typename tree_t::elem_t &  elemOut,
const tree_t &  tree,
const typename tree_t::vector_t &  point 
)

§ FindDuplicates()

vector<string> ug::FindDuplicates ( const vector< string > &  vec)

§ FindElementsInIntersectingNodes()

template<class tree_t >
bool ug::FindElementsInIntersectingNodes ( std::vector< typename tree_t::elem_t > &  elemsOut,
const tree_t &  tree,
const typename tree_t::box_t &  bbox 
)

§ FindLongestEdge()

template<class TEdgeIterator , class TAAPosVRT >
Edge* ug::FindLongestEdge ( TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
TAAPosVRT &  aaPos 
)

§ FindLowestLeafNodeLevel()

template<class tree_t >
size_t ug::FindLowestLeafNodeLevel ( const tree_t &  tree)

§ FindPositionInInterfaces()

void ug::FindPositionInInterfaces ( std::vector< std::pair< int, size_t > > &  vIndexInterface,
const IndexLayout layout,
size_t  index 
)

§ FindSlivers()

template<class TIter , class TAAPos >
size_t ug::FindSlivers ( std::vector< typename TIter::value_type > &  sliversOut,
TIter  elemsBegin,
TIter  elemsEnd,
number  thresholdRatio,
TAAPos  aaPos,
bool  clearContainer = true 
)

Searchs for slivers in the given list of elements.

Slivers are flat tetrahedrons. Only tetrahedral elements will be regarded!

References IsSliver(), and ROID_TETRAHEDRON.

§ FinishShinyCallLogging()

void ug::FinishShinyCallLogging ( )

§ forward_gs_step()

template<typename Matrix_type , typename Vector_type >
void ug::forward_gs_step ( Vector_type &  c,
const Matrix_type &  A,
const Vector_type &  d,
const size_t  i,
const number  relaxFactor 
)

commmon GaussSeidel-step-calls for a single index 'i'

References InverseMatMult(), and MatMultAdd().

Referenced by ug::ProjGaussSeidel< TDomain, TAlgebra >::step(), and ug::ProjSymmetricGaussSeidel< TDomain, TAlgebra >::step().

§ GatherVectorOnOne() [1/2]

§ GatherVectorOnOne() [2/2]

template<typename T >
void ug::GatherVectorOnOne ( IndexLayout agglomeratedMaster,
IndexLayout agglomeratedSlave,
pcl::InterfaceCommunicator< IndexLayout > &  com,
ParallelVector< T > &  collectedVec,
const ParallelVector< T > &  vec,
ParallelStorageType  type,
bool  bRoot 
)

gathers the vector vec to collectedVec on one processor

Parameters
agglomeratedMastermaster agglomeration layout. only nonempty if Root=true
agglomeratedSlaveslave agglomeration layout. only nonempty if Root=false
com
collectedVec(output) result on proc with bRoot=true
vec(input) the distributed vec
typecan be PST_ADDITIVE or PST_CONSISTENT
bRoot

References pcl::InterfaceCommunicator< TLayout >::communicate(), ug::ParallelVector< TVector >::get_storage_type(), ug::ParallelVector< TVector >::has_storage_type(), PROFILE_FUNC_GROUP, PST_ADDITIVE, PST_CONSISTENT, pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), ug::ParallelVector< TVector >::set(), ug::ParallelVector< TVector >::set_storage_type(), UG_CATCH_THROW, UG_COND_THROW, and UG_THROW.

§ GeneralizedEigenvalueProblemComplex()

template<typename A_type , typename TLambdaVectorType >
int ug::GeneralizedEigenvalueProblemComplex ( DenseMatrix< A_type > &  A,
DenseMatrix< A_type > &  X,
TLambdaVectorType &  lambda,
DenseMatrix< A_type > &  B,
bool  bSortEigenvalues = false 
)

References UG_ASSERT.

§ GenerateAlgebraIDHashList()

void ug::GenerateAlgebraIDHashList ( AlgebraIDHashList hash,
AlgebraIDVec algebraIDs 
)
inline

§ GenerateGlobalAlgebraIDs()

template<class TLayout >
void ug::GenerateGlobalAlgebraIDs ( pcl::InterfaceCommunicator< TLayout > &  communicator,
std::vector< AlgebraID > &  idsOut,
size_t  numIDs,
const TLayout &  masterLayout,
const TLayout &  slaveLayout 
)

Generates a set of unique global algebra ids.

Horizontal slaves have the same algebra-id as their associated horizontal masters. Make sure that masterLayout and slaveLayout do not reference indices >= numIDs.

References pcl::InterfaceCommunicator< TLayout >::communicate(), GenerateGlobalConsecutiveIndices(), pcl::ProcRank(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by MatAddSlaveRowsToMasterRowOverlap0(), and ug::ParallelNodes::ParallelNodes().

§ GenerateGlobalConsecutiveIndices()

§ GenerateIcosahedron()

void ug::GenerateIcosahedron ( Grid grid,
const vector3 center,
number  radius,
AVector3 aPos 
)

Creates an Icosahedron.

Creates an Icosahedron with the given radius. (outer circle)

References ug::Grid::attach_to_vertices(), ug::Grid::create(), ug::Grid::has_vertex_attachment(), and VecScaleAdd().

Referenced by GenerateIcosphere().

§ GenerateIcosphere()

void ug::GenerateIcosphere ( Grid grid,
const vector3 center,
number  radius,
int  numRefinements,
AVector3 aPos,
Selector psel = NULL 
)

Creates a ico-sphere by repeatedly refining an icosahedron.

Make sure not to choose a too high number of refinements. Number of triangles produced equals 20 * 4^numRefinements.

You may optionally specify a selector. If you do so, the selector will be used for internal calculations. The whole sphere will be selected when the algorithm is done (all vertices, edges and faces).

If you won't specify a selector, an internal selector has to be created, which introduces a runtime overhead of O(n). This could be avoided by a more elaborate implementation.

References ug::Selector::assign_grid(), ug::Grid::attach_to_edges(), ug::ISelector::autoselection_enabled(), ug::Selector::clear(), ug::Grid::detach_from_edges(), ug::ISelector::enable_autoselection(), GenerateIcosahedron(), MakeGeometry3d(), and Refine().

§ GenVecCross< 2 >()

template<>
void ug::GenVecCross< 2 > ( MathVector< 2 > &  result,
const MathVector< 2 > &  v_1,
const MathVector< 2 > &  v_2 
)
inline

specialization of the "generalized vector product" in 2d.

See also
GenVecCross

References GenVecCross< 3 >().

Referenced by GenVecCross().

§ GenVecCross< 3 >()

template<>
void ug::GenVecCross< 3 > ( MathVector< 3 > &  result,
const MathVector< 3 > &  v_1,
const MathVector< 3 > &  v_2 
)
inline

specialization of the "generalized vector product" in 3d.

See also
GenVecCross

References VecCross().

Referenced by GenVecCross< 2 >().

§ GeometricApproximationDegree() [1/2]

number ug::GeometricApproximationDegree ( SimpleGrid sg,
int  triIndex 
)

the returned degree lies between 0 and 1. The closer to 1 the better.

returns the minimal dot-product of each normal of the triangle-corners with the triangles normal.

References GeometricApproximationDegree(), ug::SimpleGrid::triangleNormals, ug::SimpleGrid::triangles, and ug::SimpleGrid::vertexNormals.

§ GeometricApproximationDegree() [2/2]

number ug::GeometricApproximationDegree ( SimpleGrid sg)

sums GeometricApproximationDegree for each triangle.

the returned degree lies between 0 and 1. The closer to 1 the better.

References ug::SimpleGrid::triangles.

Referenced by GeometricApproximationDegree().

§ get_algebra_indices() [1/2]

void ug::get_algebra_indices ( ConstSmartPtr< DoFDistribution dd,
ConstrainedVertex hgVrt,
std::vector< Vertex *> &  vConstrainingVrt,
std::vector< size_t > &  constrainedInd,
std::vector< std::vector< size_t > > &  vConstrainingInd 
)
inline

§ get_algebra_indices() [2/2]

template<typename TDomain >
void ug::get_algebra_indices ( ConstSmartPtr< DoFDistribution dd,
ConstrainedVertex hgVrt,
std::vector< Vertex *> &  vConstrainingVrt,
std::vector< size_t > &  constrainedInd,
std::vector< std::vector< size_t > > &  vConstrainingInd,
const SortVertexPos< TDomain::dim > &  sortVertexPos 
)
inline

§ get_clock_s()

§ get_mem()

void* ug::get_mem ( size_t  size)

Referenced by operator new(), and operator new[]().

§ get_val() [1/2]

§ get_val() [2/2]

size_t ug::get_val ( size_t  i)
inline

§ GetBlockGSCorrection() [1/2]

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrection ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
DenseMatrix< VariableArray2< double > > &  AlocInv,
std::vector< size_t > &  indices,
DenseVector< VariableArray1< double > > &  tmp,
DenseVector< VariableArray1< double > > &  tmp2 
)

Calculates the gs correction by updating all unknowns in 'indices' at once with the inverse of this block stored in AlocInv.

Parameters
Aa SparseMatrix
xsolution to be GS-updated
bright hand side b
AlocInvcached inverse on a block/slice, calculated with GetSliceDenseInverse
indicesthe indices of the block
tmpa temporary vector

References BlockRef(), GetSize(), and MatMult().

Referenced by ug::BlockGaussSeidel< TAlgebra, backward, forward >::block_step(), and GetBlockGSCorrection().

§ GetBlockGSCorrection() [2/2]

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrection ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
DenseMatrix< VariableArray2< double > > &  AlocInv,
std::vector< size_t > &  indices 
)

§ GetBlockGSCorrectionILUT()

template<typename TSparseMatrixType , typename TVectorType >
void ug::GetBlockGSCorrectionILUT ( const TSparseMatrixType &  A,
TVectorType &  x,
TVectorType &  b,
SmartPtr< ILUTPreconditioner< CPUAlgebra > > &  ilut,
std::vector< size_t > &  indices,
CPUAlgebra::vector_type tmp,
CPUAlgebra::vector_type tmp2 
)

Calculates the gs correction by updating all unknowns in 'indices' at once with the inverse of this block implicitely in 'ilut'.

Parameters
Aa SparseMatrix
xsolution to be GS-updated
bright hand side b
ilutcached ilut inverse type
indicesthe indices of the block
tmpa temporary vector
tmp2another temporary vector

References BlockRef(), GetSize(), and ug::Vector< TValueType >::resize().

Referenced by ug::SparseBlockGaussSeidel< TAlgebra, backward, forward >::block_step(), and ug::SparseBlockGaussSeidel2< TAlgebra, backward, forward >::block_step().

§ GetBoundaryRefinementRule()

GlobalBoundaryRefinementRule ug::GetBoundaryRefinementRule ( )

§ GetBytesSizeString()

std::string ug::GetBytesSizeString ( size_t  s,
int  length = 0 
)

Helper function to display byte sizes like 2411724 => 2,3 MB

Parameters
[in]ssize in bytes
[in]lengthif != 0, fixes the returned string length to this length (for tables etc.).
Returns
string describing the size s=1024 -> 1 kb

Referenced by DisplayVacantMemory(), ug::LU< TAlgebra >::init_dense(), and OstreamShift().

§ GetCols() [1/3]

§ GetCols() [2/3]

template<>
size_t ug::GetCols ( const number t)
inline

§ GetCols() [3/3]

template<typename T >
size_t ug::GetCols ( const DenseMatrix< T > &  t)
inline

§ GetCuthillMcKeeOrder()

template<typename TSparseMatrix >
void ug::GetCuthillMcKeeOrder ( const TSparseMatrix &  mat,
std::vector< size_t > &  newIndex 
)
Parameters
matA sparse matrix
newIndexthe cuthill-mckee ordered new indices

References ComputeCuthillMcKeeOrder().

Referenced by ug::ILUTPreconditioner< ug::CPUAlgebra >::calc_cuthill_mckee(), and ug::ILU< TAlgebra >::calc_cuthill_mckee().

§ GetDefaultPositionAttachment()

template<class TAttachment >
UG_API TAttachment& ug::GetDefaultPositionAttachment ( )
inline

this method can be used to retrieve the default position attachments for different types.

Please note that only existing default attachments are returned.

Valid types for TAttachment are:

  • APosition (AVector3) the default 3d position type. Returns aPosition.
  • APosition2 (AVector2) the default 2d position type. Returns aPosition2.

§ GetDefaultPositionAttachment< APosition >()

References aPosition.

§ GetDefaultPositionAttachment< APosition1 >()

References aPosition1.

§ GetDefaultPositionAttachment< APosition2 >()

References aPosition2.

§ GetDiag() [1/2]

void ug::GetDiag ( double &  a,
double  b 
)
inline

§ GetDiag() [2/2]

template<typename T1 , typename T2 >
void ug::GetDiag ( T1 &  m1,
const T2 &  m 
)
inline

References UG_ASSERT.

§ GetDiagSqrt() [1/2]

template<typename T1 , typename T2 >
void ug::GetDiagSqrt ( T1 &  v,
const T2 &  m 
)
inline

References UG_ASSERT.

§ GetDiagSqrt() [2/2]

void ug::GetDiagSqrt ( double &  a,
double  b 
)
inline

§ GetDirectorySeperatorPos()

string::size_type ug::GetDirectorySeperatorPos ( const string &  str)

§ GetEdgeOnTheLeft()

§ GetElemDiscOnSubset()

template<typename TDomain >
void ug::GetElemDiscOnSubset ( std::vector< IElemDisc< TDomain > * > &  vSubsetElemDisc,
const std::vector< IElemDisc< TDomain > * > &  vElemDisc,
const std::vector< SubsetGroup > &  vSSGrp,
int  si,
bool  clearVec = true 
)

§ GetFileLinesParallel()

string ug::GetFileLinesParallel ( string  filename,
size_t  fromline,
size_t  toline,
bool  includeLineNumbers,
const pcl::ProcessCommunicator pc = pcl::ProcessCommunicator() 
)

§ GetFilenameExtension()

string ug::GetFilenameExtension ( const string &  str)

§ GetFirstRegularVertex()

static int ug::GetFirstRegularVertex ( Grid grid,
const SubsetHandler sh,
Face q 
)
static

THIS METHOD USES Grid::mark This method is required since double-triangles have to be avoided during triangulation of quadrilaterals which share two edges whith another quadrilateral (this e.g. occurs in fracture geometries with neumann boundaries). Note that only faces in the same subset as q are regarded.

References ug::Grid::begin_marking(), CollectAssociated(), ug::Grid::end_marking(), ug::ISubsetHandler::get_subset_index(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::num_vertices(), and ug::FaceVertices::vertex().

Referenced by WriteLGM(), and WriteNG().

§ GetHighestReferencedIndex()

§ GetInverse() [1/2]

template<typename T >
bool ug::GetInverse ( block_traits< T >::inverse_type &  inv,
const T &  m 
)
inline

§ GetInverse() [2/2]

bool ug::GetInverse ( number inv,
const number m 
)
inline

§ GetInversePermutation()

bool ug::GetInversePermutation ( const std::vector< size_t > &  perm,
std::vector< size_t > &  invPerm 
)

Function to calculate the inverse of a permutation

Parameters
[in]permarray mapping i -> perm[i]
[out]invPermarray mapping i -> invPerm[i] so that perm[ invPerm[i] ] = i
Returns
true if perm[i] == i forall i.

References UG_COND_THROW.

Referenced by ug::ILUTPreconditioner< ug::CPUAlgebra >::calc_cuthill_mckee(), ug::ILU< TAlgebra >::calc_cuthill_mckee(), and SetVectorAsPermutation().

§ GetLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::GetLocalMatrix ( const TGlobalMatrix &  mat,
TLocalMatrix &  localMat 
)
inline

§ GetLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::GetLocalMatrix ( const TGlobalMatrix &  mat,
TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References GetLocalMatrix().

§ GetLocalVector()

§ GetMinMaxNumElements()

template<class tree_t >
std::pair<size_t, size_t> ug::GetMinMaxNumElements ( const tree_t &  tree,
size_t  lvl 
)

§ GetMultType()

§ GetNumberOfDigits()

unsigned int ug::GetNumberOfDigits ( uint64_t  i)
inline

Referenced by ConvertNumber(), and ConvertNumberSI().

§ GetNumberOfDoFsOfPyramid()

size_t ug::GetNumberOfDoFsOfPyramid ( int  p)

§ GetOpposingSide() [1/3]

Face * ug::GetOpposingSide ( Grid g,
Volume elem,
Face side 
)

§ GetOpposingSide() [2/3]

Edge * ug::GetOpposingSide ( Grid g,
Face elem,
Edge side 
)

§ GetOpposingSide() [3/3]

Vertex * ug::GetOpposingSide ( Grid g,
Edge elem,
Vertex side 
)

§ GetParent()

static pair<GridObject*, char> ug::GetParent ( BinaryBuffer in,
const vector< Vertex *> &  vVrts,
const vector< Edge *> &  vEdges,
const vector< Face *> &  vFaces,
const vector< Volume *> &  vVols 
)
static

§ GetPositionAttachmentDimension() [1/2]

template<typename TAPos >
int ug::GetPositionAttachmentDimension ( )
inline

this function returns the dimension of the position attachment at compile time

§ GetPositionAttachmentDimension() [2/2]

template<typename TAPos >
UG_API int ug::GetPositionAttachmentDimension ( )
inline

this function returns the dimension of the position attachment at compile time

§ GetProfileNode() [1/2]

const UGProfileNode * ug::GetProfileNode ( const char *  name)

§ GetProfileNode() [2/2]

const UGProfileNode * ug::GetProfileNode ( const char *  name,
const UGProfileNode node 
)

References PROFILER_NULL_NODE.

§ GetProfilerAvailable()

bool ug::GetProfilerAvailable ( )

§ GetQuadratureType()

QuadType ug::GetQuadratureType ( const std::string &  name)

returns Identifier from string

References BEST, GAUSS, GAUSS_LEGENDRE, NEWTON_COTES, TrimString(), and UG_THROW.

Referenced by Integrate().

§ getrf() [1/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
lapack_float pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

getrf computes an LU factorization of a general M-by-N matrix A using partial pivoting with row interchanges.

The factorization has the form A = P * L * U where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n), and U is upper triangular (upper trapezoidal if m < n).

Parameters
rowsThe number of rows of the matrix A. M >= 0.
colsThe number of columns of the matrix A. N >= 0.
pColMajorMatrixdimension (LDA,N) On entry, the M-by-N matrix to be factored. On exit, the factors L and U from the factorization A = P*L*U; the unit diagonal elements of L are not stored.
ldaThe leading dimension of the array A. LDA >= max(1,M).
pPivotarray, dimension (min(M,N)) The pivot indices; for 1 <= i <= min(M,N), row i of the matrix was interchanged with row IPIV(i).
Returns
= 0: successful exit < 0: if = -i, the i-th argument had an illegal value > 0: if = i, U(i,i) is exactly zero. The factorization has been completed, but the factor U is exactly singular, and division by zero will occur if it is used to solve a system of equations.*

References sgetrf_().

Referenced by Invert(), ug::DenseMatrixInverse< ug::DenseMatrix< ug::VariableArray2< double > > >::invert(), and InvertNdyn().

§ getrf() [2/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
lapack_double pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References dgetrf_().

§ getrf() [3/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
std::complex< lapack_float > *  pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References cgetrf_().

§ getrf() [4/4]

lapack_int ug::getrf ( lapack_int  rows,
lapack_int  cols,
std::complex< lapack_double > *  pColMajorMatrix,
lapack_int  lda,
lapack_int pPivot 
)
inline

References zgetrf_().

§ getri() [1/2]

lapack_int ug::getri ( lapack_int  n,
lapack_float pColMajorMatrix,
lapack_int  lda,
const int *  pPivot,
lapack_float pWork,
lapack_int  worksize 
)
inline

References sgetri_().

Referenced by Invert(), and InvertNdyn().

§ getri() [2/2]

lapack_int ug::getri ( lapack_int  n,
lapack_double pColMajorMatrix,
lapack_int  lda,
const int *  pPivot,
lapack_double pWork,
lapack_int  worksize 
)
inline

References dgetri_().

§ GetRightLeftUnitIndex()

static bool ug::GetRightLeftUnitIndex ( int &  rightIndex,
int &  leftIndex,
Grid grid,
Face face,
const SubsetHandler shVolume 
)
static

§ GetRows() [1/3]

template<typename T >
size_t ug::GetRows ( const T &  t)
inline

§ GetRows() [2/3]

template<>
size_t ug::GetRows ( const number t)
inline

§ GetRows() [3/3]

template<typename T >
size_t ug::GetRows ( const DenseMatrix< T > &  t)
inline

§ getrs() [1/2]

lapack_int ug::getrs ( eTransposeMode  transposeMode,
lapack_int  n,
lapack_int  nrOfRHS,
const float *  pColMajorMatrix,
lapack_int  lda,
const lapack_int pPivot,
lapack_float pRHS,
lapack_int  ldb 
)
inline

§ getrs() [2/2]

lapack_int ug::getrs ( eTransposeMode  transposeMode,
lapack_int  n,
lapack_int  nrOfRHS,
const double *  pColMajorMatrix,
lapack_int  lda,
const lapack_int pPivot,
lapack_double pRHS,
lapack_int  ldb 
)
inline

References dgetrs_(), and TransposeModeToChar().

§ getScaling() [1/2]

template<typename T >
double ug::getScaling ( const T &  t)

Referenced by operator*(), and VectorAssign().

§ getScaling() [2/2]

template<typename T >
double ug::getScaling ( const AlphaVec_Expression< T > &  t)

§ GetSelfMem()

size_t ug::GetSelfMem ( const Shiny::ProfileNode *  p)

References selfmem.

§ GetSize() [1/3]

§ GetSize() [2/3]

template<>
size_t ug::GetSize ( const number t)
inline

§ GetSize() [3/3]

template<typename T >
size_t ug::GetSize ( const DenseVector< T > &  t)
inline

§ GetSliceDenseInverse() [1/2]

template<typename TSparseMatrixType >
void ug::GetSliceDenseInverse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
DenseMatrix< VariableArray2< double > > &  AlocInv,
DenseMatrix< VariableArray2< typename TSparseMatrixType::value_type > > &  tmp 
)
Parameters
Aa sparse matrix
indicesmap local -> global indices
AlocInvinverse on the indices to be used in
See also
GetBlockGSCorrection

References BlockMatrixToDoubleMatrix(), GetLocalMatrix(), and Invert().

Referenced by ug::BlockGaussSeidel< TAlgebra, backward, forward >::block_preprocess(), and GetSliceDenseInverse().

§ GetSliceDenseInverse() [2/2]

template<typename TSparseMatrixType >
void ug::GetSliceDenseInverse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
DenseMatrix< VariableArray2< double > > &  AlocInv 
)

§ GetSliceSparse()

template<typename TSparseMatrixType >
void ug::GetSliceSparse ( const TSparseMatrixType &  A,
const std::vector< size_t > &  indices,
CPUAlgebra::matrix_type R 
)
Parameters
Aa sparse matrix
indicesmap local -> global indices
Rsparse matrix slice in local indices

References BlockRef(), and GetRows().

Referenced by ug::SparseBlockGaussSeidel< TAlgebra, backward, forward >::block_preprocess(), and ug::SparseBlockGaussSeidel2< TAlgebra, backward, forward >::block_preprocess().

§ GetSmallestLocalSubsetDimension()

template<class TElem >
static char ug::GetSmallestLocalSubsetDimension ( typename Grid::traits< TElem >::secure_container &  nbrs,
MultiElementAttachmentAccessor< AChar > &  aaDim 
)
static

§ GetStandardElementProlongation()

§ GetStandardElementRestriction()

§ GetTotalMem()

size_t ug::GetTotalMem ( const Shiny::ProfileNode *  p)

References totalmem.

§ GetUniqueFVGeomID()

template<class TType >
size_t ug::GetUniqueFVGeomID ( )

This method associates a unique unsigned integer value with each type.

References ug::UniqueFVGeomIDProvider::inst(), and ug::UniqueFVGeomIDProvider::new_id().

§ getVector() [1/3]

template<typename T >
const T& ug::getVector ( const T &  t)

Referenced by operator*(), and VectorAssign().

§ getVector() [2/3]

template<typename T >
const T& ug::getVector ( const AlphaVec_Expression< T > &  t)

§ getVector() [3/3]

template<typename TDomain , typename TAlgebra >
const TAlgebra::vector_type& ug::getVector ( const GridFunction< TDomain, TAlgebra > &  t)

§ GramDeterminant() [1/3]

template<typename T >
MathMatrix<0,0,T>::value_type ug::GramDeterminant ( const MathMatrix< 0, 0, T > &  m)
inline

§ GramDeterminant() [2/3]

template<size_t N, typename T >
MathMatrix<N,0,T>::value_type ug::GramDeterminant ( const MathMatrix< N, 0, T > &  m)
inline

§ GramDeterminant() [3/3]

template<size_t M, typename T >
MathMatrix<0,M,T>::value_type ug::GramDeterminant ( const MathMatrix< 0, M, T > &  m)
inline

§ GridLevelAppendix()

std::string ug::GridLevelAppendix ( const GridLevel gl,
int  minfill 
)

§ H1Error() [1/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spExactGrad,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder,
const char *  subsets 
)

compute H1 error of a function on the whole domain or on some subsets

This function computes the H1-difference between a given analytic function and a grid function.

Parameters
[in]spExactSolanalytic function
[in]spExactGradanalytic gradient
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), make_sp(), and UG_THROW.

Referenced by H1Error().

§ H1Error() [2/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spExactGrad,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder 
)

References dim, H1Error(), and make_sp().

§ H1Error() [3/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

computes the h1 error function between to function

This function computes the H1-difference between two grid functions that may be defined on different grids. The element loop is performed over the finer level.

Parameters
[in]spGridFct1grid function 1
[in]cmp1symbolic name of component function
[in]spGridFct2grid function 2
[in]cmp2symbolic name of component function
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), make_sp(), and UG_THROW.

§ H1Error() [4/4]

template<typename TGridFunction >
number ug::H1Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder 
)

References H1Error().

§ HangingNormalOnSCVF()

template<typename TRefElem , int TWorldDim>
void ug::HangingNormalOnSCVF ( MathVector< TWorldDim > &  outNormal,
const MathVector< TWorldDim > *  vCornerCoords 
)

§ hash_key() [1/14]

size_t ug::hash_key ( Vertex key)

returns the hash-value of the vertex.

References ug::Vertex::get_hash_value().

§ hash_key() [2/14]

size_t ug::hash_key ( EdgeVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Edge (or EdgeDescriptor) has the same vertices as another Edge (or EdgeDescriptor), the hash-keys are the same.

References HashKey().

§ hash_key() [3/14]

size_t ug::hash_key ( const EdgeVertices key)

References HashKey().

§ hash_key() [4/14]

size_t ug::hash_key ( Edge key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PEdgeVertices>

References HashKey().

§ hash_key() [5/14]

size_t ug::hash_key ( EdgeDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PEdgeVertices>

References HashKey().

§ hash_key() [6/14]

template<>
size_t ug::hash_key ( const string &  key)

§ hash_key() [7/14]

size_t ug::hash_key ( FaceVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Face (or FaceDescriptor) has the same vertices as another Face (or FaceDescriptor), the hash-keys are the same.

References HashKey().

§ hash_key() [8/14]

size_t ug::hash_key ( const FaceVertices key)

References HashKey().

§ hash_key() [9/14]

size_t ug::hash_key ( Face key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PFaceVertices>

References HashKey().

§ hash_key() [10/14]

size_t ug::hash_key ( FaceDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PFaceVertices>

References HashKey().

§ hash_key() [11/14]

size_t ug::hash_key ( VolumeVertices key)

the hash-key is a function of vertex-hash-values.

The hash value depends on the associated vertices. If an Volume (or VolumeDescriptor) has the same vertices as another Volume (or VolumeDescriptor), the hash-keys are the same.

References HashKey().

§ hash_key() [12/14]

size_t ug::hash_key ( const VolumeVertices key)

References HashKey().

§ hash_key() [13/14]

size_t ug::hash_key ( Volume key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PVolumeVertices>

References HashKey().

§ hash_key() [14/14]

size_t ug::hash_key ( VolumeDescriptor key)

the hash-key is a function of vertex-hash-values.

See also
hash_key<PVolumeVertices>

References HashKey().

§ hash_key< AlgebraID >()

template<>
size_t ug::hash_key< AlgebraID > ( const AlgebraID key)

§ HashKey() [1/3]

static unsigned long ug::HashKey ( const EdgeVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::Vertex::get_hash_value(), and ug::EdgeVertices::vertex().

Referenced by hash_key().

§ HashKey() [2/3]

static unsigned long ug::HashKey ( const FaceVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::FaceVertices::num_vertices(), and ug::FaceVertices::vertices().

§ HashKey() [3/3]

static unsigned long ug::HashKey ( const VolumeVertices key)
inlinestatic

sums the squared hash-values of associated vertices.

References ug::VolumeVertices::num_vertices(), and ug::VolumeVertices::vertices().

§ HasMemTracking()

bool ug::HasMemTracking ( )
Returns
true if -DINTERNAL_MEMTRACKER=ON, otherwise false this function returns true if memory tracking is possible at all.

§ HistogrammString()

std::string ug::HistogrammString ( std::vector< double >  values)

References scientificStr().

§ IdentifySubsets() [1/2]

template<class TDomain >
void ug::IdentifySubsets ( TDomain &  dom,
int  sInd1,
int  sInd2 
)

identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created.

performs geometric ident of periodic elements and master slave

Parameters
domDomain the periodic boundary should be defined on
sInd1subset index which elements should be identified with elements from those of sInd2
sInd2
See also
{sInd1}

References ug::GridObjectCollection::begin(), CalculateCenter(), ug::PeriodicBoundaryManager::check_periodicity(), ug::GridObjectCollection::end(), ug::PeriodicBoundaryManager::identify(), ug::ParallelShiftIdentifier< TPosAA >::match(), ug::GridObjectCollection::num(), ug::GridObjectCollection::num_levels(), pcl::NumProcs(), ug::ParallelShiftIdentifier< TPosAA >::set_shift(), UG_THROW, and VecSubtract().

Referenced by IdentifySubsets().

§ IdentifySubsets() [2/2]

template<class TDomain >
void ug::IdentifySubsets ( TDomain &  dom,
const char *  sName1,
const char *  sName2 
)

identifies subset 1 with subset 2. If the grid of given domain has no periodic boundary manager attached, one will be created.

Parameters
domDomain the periodic boundary should be defined on
sName1subset name which elements should be identified with elements from those of sName2
sName2
See also
{sName1}

References IdentifySubsets(), pcl::NumProcs(), and UG_THROW.

§ ImportGridFromLGM()

bool ug::ImportGridFromLGM ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler pSurfaceHandler 
)

§ ImportGridFromNG()

bool ug::ImportGridFromNG ( Grid grid,
const char *  filename,
AVector3 aPos,
ISubsetHandler pSubdomainHandler 
)

§ ImportGridFromTETGEN() [1/2]

bool ug::ImportGridFromTETGEN ( Grid grid,
const char *  nodesFilename,
const char *  facesFilename,
const char *  elemsFilename,
AVector3 aPos,
std::vector< AFloat > *  pvNodeAttributes,
AInt paNodeBoundaryMarker,
AInt paFaceBoundaryMarker,
AInt paElementAttribute 
)

§ ImportGridFromTETGEN() [2/2]

bool ug::ImportGridFromTETGEN ( Grid grid,
const char *  nodesFilename,
const char *  facesFilename,
const char *  elemsFilename,
AVector3 aPos,
ISubsetHandler psh,
std::vector< AFloat > *  pvNodeAttributes 
)

§ InitLinearManifoldSubsetHandler()

void ug::InitLinearManifoldSubsetHandler ( MultiGrid mg,
MGSubsetHandler sh,
MGSubsetHandler linearManifoldSH,
const char *  linearManifoldSubsets 
)

Procedure to initialize the linear boundary manifold subsets SubsetHandler with user-specified subsets.

This procedure initializes the referenced linear boundary manifold subsets SubsetHandler s.t. user-specified subsets

Parameters
domreference to Domain
linearManifoldSHreference to user-specified linearManifoldSubsets SubsetHandler

References ug::MultiGridSubsetHandler::assign_subset(), ug::MultiGridSubsetHandler::begin(), ug::MultiGridSubsetHandler::end(), ug::ISubsetHandler::get_subset_index(), ug::MultiGrid::num_levels(), RemoveWhitespaceFromString(), TokenizeString(), ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ApplySmoothSubdivisionSurfacesToTopLevel(), and ApplySmoothSubdivisionVolumesToTopLevel().

§ InitPaths()

UG_API bool ug::InitPaths ( const char *  argv0)

Initializes the pathes of ug::PathProvider.

init app, script and data paths

Initializes the following pathes in ug::PathProvider:

  • ROOT_PATH
  • BIN_PATH
  • SCRIPT_PATH
  • DATA_PATH
  • GRID_PATH
  • PLUGIN_PATH

Note: If you set a path before calling this method, it won't be overwritten.

References APPS_PATH, BIN_PATH, ug::PathProvider::get_path(), GetPathSeparator(), ug::PathProvider::has_path(), MAIN, PLUGIN_PATH, PROFILE_FUNC, ROOT_PATH, SCRIPT_PATH, ug::PathProvider::set_path(), and UG_DLOG.

Referenced by main(), and UGInit().

§ InnerDoFPosition() [1/2]

§ InnerDoFPosition() [2/2]

template<typename TDomain >
bool ug::InnerDoFPosition ( std::vector< MathVector< TDomain::dim > > &  vPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

�

Returns the global DoF position on an element.

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

§ InnerDoFPositionElem()

template<int refDim, int dim>
bool ug::InnerDoFPositionElem ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

§ InnerDoFPositionVertex()

template<int dim>
bool ug::InnerDoFPositionVertex ( std::vector< MathVector< dim > > &  vPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vVertPos,
const LFEID lfeID 
)

§ Integral() [1/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  quadOrder,
std::string  quadType 
)

References IntegrateSubsets(), and make_sp().

Referenced by AdjustMeanValue(), and Integral().

§ Integral() [2/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  order 
)

References Integral().

§ Integral() [3/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time 
)

References Integral().

§ Integral() [4/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
number  time 
)

References Integral().

§ Integral() [5/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets 
)

References Integral().

§ Integral() [6/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< UserData< number, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct 
)

References Integral().

§ Integral() [7/14]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time,
int  quadOrder 
)

References dim, Integral(), and make_sp().

§ Integral() [8/14]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
number  time 
)

References Integral().

§ Integral() [9/14]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
number  time 
)

References Integral().

§ Integral() [10/14]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets 
)

References Integral().

§ Integral() [11/14]

template<typename TGridFunction >
number ug::Integral ( number  val,
SmartPtr< TGridFunction >  spGridFct 
)

§ Integral() [12/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
int  quadOrder 
)

§ Integral() [13/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Integral().

§ Integral() [14/14]

template<typename TGridFunction >
number ug::Integral ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References Integral().

§ IntegralNormalComponentOnManifold() [1/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset,
number  time,
int  quadOrder 
)

§ IntegralNormalComponentOnManifold() [2/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset,
number  time 
)

§ IntegralNormalComponentOnManifold() [3/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
number  time 
)

§ IntegralNormalComponentOnManifold() [4/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset,
const char *  InnerSubset 
)

§ IntegralNormalComponentOnManifold() [5/5]

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifold ( SmartPtr< UserData< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spData,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubset 
)

§ IntegralNormalComponentOnManifoldGeneral()

template<int WorldDim, int dim, typename TConstIterator >
number ug::IntegralNormalComponentOnManifoldGeneral ( TConstIterator  iterBegin,
TConstIterator  iterEnd,
typename domain_traits< WorldDim >::position_accessor_type &  aaPos,
const ISubsetHandler ish,
IIntegrand< MathVector< WorldDim >, WorldDim > &  integrand,
const SubsetGroup bndSSGrp,
int  quadOrder,
Grid grid 
)

§ IntegralNormalComponentOnManifoldSubset()

template<typename TGridFunction , int dim>
number ug::IntegralNormalComponentOnManifoldSubset ( SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
int  si,
const SubsetGroup bndSSGrp,
int  quadOrder 
)

§ IntegralNormalComponentOnManifoldSubsets()

template<typename TGridFunction >
number ug::IntegralNormalComponentOnManifoldSubsets ( SmartPtr< IIntegrand< MathVector< TGridFunction::dim >, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
const char *  BndSubsets,
const char *  InnerSubsets,
int  quadOrder 
)

§ IntegralNormalComponentOnManifoldUsingFV1Geom()

template<int WorldDim, int dim, typename TConstIterator >
number ug::IntegralNormalComponentOnManifoldUsingFV1Geom ( TConstIterator  iterBegin,
TConstIterator  iterEnd,
typename domain_traits< WorldDim >::position_accessor_type &  aaPos,
const ISubsetHandler ish,
IIntegrand< MathVector< WorldDim >, WorldDim > &  integrand,
const SubsetGroup bndSSGrp 
)

§ Integrate()

template<int WorldDim, int dim, typename TConstIterator >
number ug::Integrate ( TConstIterator  iterBegin,
TConstIterator  iterEnd,
typename domain_traits< WorldDim >::position_accessor_type &  aaPos,
IIntegrand< number, WorldDim > &  integrand,
int  quadOrder,
std::string  quadType,
Grid::AttachmentAccessor< typename domain_traits< dim >::grid_base_object, ANumber > *  paaElemContribs = NULL 
)

integrates on the whole domain

This function integrates an arbitrary integrand over the whole domain. Note:

  • only grid elements of the same dimension as the world dimension of the domain are integrated. Thus, no manifolds.
  • The implementation is using virtual functions. Thus, there is a small performance drawback compared to hard coding everything, but we gain flexibility. In addition all virtual calls compute for the whole set of integration points to avoid many virtual calls, i.e. only one virtual call for all integration points is needed.
Parameters
[in]iterBeginiterator to first geometric object to integrate
[in]iterBeginiterator to last geometric object to integrate
[in]integrandIntegrand
[in]quadOrderorder of quadrature rule
[in]quadType
[in]paaElemContribs(optional). If != NULL, the method will store the contribution of each element in the associated attachment entry.
Returns
value of the integral

References CollectCornerCoordinates(), ug::QuadratureRuleProvider< TDim >::get(), GetQuadratureType(), ug::DimReferenceMapping< TDim, TWorldDim >::jacobian_transposed(), ug::DimReferenceMapping< TDim, TWorldDim >::local_to_global(), ug::QuadratureRule< TDim >::points(), PROFILE_FUNC, ug::QuadratureRule< TDim >::size(), SqrtGramDeterminant(), UG_CATCH_THROW, ug::DimReferenceMapping< TDim, TWorldDim >::update(), ug::AttachmentAccessor< TElem::grid_base_object *, TAttachment, traits< TElem >::ElementStorage >::valid(), ug::IIntegrand< TData, TWorldDim >::values(), and ug::QuadratureRule< TDim >::weight().

§ IntegrateDiscFlux() [1/2]

template<typename TGridFunction , int dim>
void ug::IntegrateDiscFlux ( std::vector< number > &  vValue,
const TGridFunction &  rDefect,
const FunctionGroup fctGrp,
int  si 
)

§ IntegrateDiscFlux() [2/2]

template<typename TGridFunction >
number ug::IntegrateDiscFlux ( SmartPtr< IAssemble< typename TGridFunction::algebra_type > >  spAssemble,
SmartPtr< TGridFunction >  spGridFct,
const char *  pCmps,
const char *  subsets 
)

§ IntegrateNormalGradientOnManifold()

template<typename TGridFunction >
number ug::IntegrateNormalGradientOnManifold ( TGridFunction &  u,
const char *  cmp,
const char *  BndSubset,
const char *  InnerSubset = NULL 
)

Integrates the Flux of a component over some boundary subsets.

This function integrates \( - \nabla c \cdot \vec{n} \) over some selected boundary subsets. In order to compute the gradient of a function a world- dimension element must be given and, thus, some "inner" subsets have to be specified to indicate the full-dimensional subsets. The integral sum is then taken over all boundary subset manifold geometric objects, that are part of an element of the scheduled "inner" elements

Parameters
ua grid function
cmpthe component, whose gradient should be integrated
BndSubseta comma-separated string of symbolic boundary subset names
InnerSubseta comma-separated string of symbolic inner subset names
Returns
the integral

References ug::SubsetGroup::add(), ug::DimFV1Geometry< TDim, TWorldDim >::add_boundary_subset(), pcl::ProcessCommunicator::allreduce(), CollectCornerCoordinates(), dim, DoFRef(), ug::LFEID::LAGRANGE, pcl::NumProcs(), PCL_DT_DOUBLE, PCL_RO_SUM, TokenizeString(), UG_ASSERT, UG_CATCH_THROW, UG_THROW, VecDot(), VecScaleAdd(), and VecSet().

§ IntegrateSubset()

template<typename TGridFunction , int dim>
number ug::IntegrateSubset ( SmartPtr< IIntegrand< number, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
int  si,
int  quadOrder,
std::string  quadType 
)

§ IntegrateSubsets()

template<typename TGridFunction >
number ug::IntegrateSubsets ( SmartPtr< IIntegrand< number, TGridFunction::dim > >  spIntegrand,
SmartPtr< TGridFunction >  spGridFct,
const char *  subsets,
int  quadOrder,
std::string  quadType = std::string() 
)

§ Interpolate() [1/8]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

interpolates a function on a subset

This function interpolates a GridFunction. To evaluate the function on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::SubsetGroup::add(), ug::LFEID::LAGRANGE, PST_CONSISTENT, RemoveLowerDimSubsets(), SameDimensionsInAllSubsets(), TokenizeString(), and UG_THROW.

Referenced by Interpolate().

§ Interpolate() [2/8]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References Interpolate().

§ Interpolate() [3/8]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Interpolate().

§ Interpolate() [4/8]

template<typename TGridFunction >
void ug::Interpolate ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References Interpolate().

§ Interpolate() [5/8]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, Interpolate(), and make_sp().

§ Interpolate() [6/8]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References Interpolate().

§ Interpolate() [7/8]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References Interpolate().

§ Interpolate() [8/8]

template<typename TGridFunction >
void ug::Interpolate ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

§ InterpolateInner() [1/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

interpolates a function on a subset

This function interpolates a Lagrange type GridFunction. In contrast to its "big brother" Interpolate() in interpolate.h, this function will only write to inner DoFs, but to all of them, on any element located in any of the given subsets. This is more intuitive and secure than writing to all (not necessarily inner) DoFs of an element located in a subset, as this takes into account the unique subsets of sub-elements.

At the moment, this is only meant for Lagrange-type elements. Please feel free to add functionality for other types if you like.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets, where to interpolate (NULL = everywhere)
[in]timetime point

References ug::SubsetGroup::add(), ug::SubsetGroup::add_all(), ug::LFEID::LAGRANGE, PST_CONSISTENT, TokenizeString(), and UG_THROW.

Referenced by InterpolateInner().

§ InterpolateInner() [2/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References InterpolateInner().

§ InterpolateInner() [3/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References InterpolateInner().

§ InterpolateInner() [4/8]

template<typename TGridFunction >
void ug::InterpolateInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References InterpolateInner().

§ InterpolateInner() [5/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, InterpolateInner(), and make_sp().

§ InterpolateInner() [6/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References InterpolateInner().

§ InterpolateInner() [7/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References InterpolateInner().

§ InterpolateInner() [8/8]

template<typename TGridFunction >
void ug::InterpolateInner ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

§ InterpolateOnElements() [1/2]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References CollectCornerCoordinates(), dim, DoFRef(), ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), ug::LocalDoFSet::num_sh(), ug::DimLocalDoFSet< TDim >::position(), UG_THROW, and ug::ReferenceMapping< TRefElem, TWorldDim >::update().

§ InterpolateOnElements() [2/2]

template<typename TGridFunction >
void ug::InterpolateOnElements ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on an element by element loop. On each element the all associated (up to the boundary of the element) are interpolated and the values are stored in the grid function.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.

§ InterpolateOnElementsInner() [1/2]

template<typename TElem , typename TGridFunction >
void ug::InterpolateOnElementsInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function interpolates a grid function on a specific subset and for a specific element type. All inner dofs of all grid elements of the given type in the given subset will be assigned an interpolated value.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset, where to interpolate
[in]timetime point

References DoFRef(), ROID_TETRAHEDRON, and UG_THROW.

§ InterpolateOnElementsInner() [2/2]

template<typename TGridFunction >
void ug::InterpolateOnElementsInner ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on a subset group. All inner dofs of all grid elements in the subset group will be assigned an inter- polated value.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, EDGE, FACE, ug::SubsetGroup::size(), UG_CATCH_THROW, UG_THROW, VERTEX, and VOLUME.

§ InterpolateOnVertices()

template<typename TGridFunction >
void ug::InterpolateOnVertices ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function interpolates a grid function on a vertex loop. Thus, it can only be used if all degrees of freedom are located in the vertices only (e.g. P1 finite elements). In those cases it is faster than the element by element loop.

Parameters
[in]spInterpolFunctiondata providing interpolation values
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to interpolate
[in]timetime point

References DoFRef(), and ug::SubsetGroup::size().

§ InterpolateValues()

template<typename TVector >
void ug::InterpolateValues ( TVector &  u,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

§ IntersectCloseEdges()

template<class TObjectCollection , class TAAPosVRT >
bool ug::IntersectCloseEdges ( Grid grid,
TObjectCollection &  elems,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

THIS METHOD USES Grid::mark. Intersects all edges in elems which are closer to each other than snapThreshold.

THIS METHOD USES Grid::mark. Intersects all edges in elems which are closer to each other than snapThreshold.

TObjectCollection has to fulfill the interface of a GridObjectCollection.

Todo:
: speed up through octree (use MultiEdgeSplit)
Note
: It is recommended to use a Grid ore a Selector as TObjectCollection, since a GridObjectCollection is static and it would thus not be possible to resolve all intersections.

References ug::Grid::associated_elements(), ug::Grid::begin_marking(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ResolveEdgeEdgeIntersection(), ug::PointerConstArray< TPtr >::size(), sq(), and UG_LOG.

Referenced by ResolveTriangleIntersections().

§ IntersectCoplanarTriangles() [1/3]

bool ug::IntersectCoplanarTriangles ( std::vector< vector2 > &  edgesOut,
const vector2 p00,
const vector2 p01,
const vector2 p02,
const vector2 p10,
const vector2 p11,
const vector2 p12 
)
inline

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge. Please note that the returned list may contain multiple copies of a point.

Note
This method performs the full test and does not perform any optimizations like an initial bounding-box check. For best performance this method should thus only be called if the two triangles do most likely intersect.

References LineLineIntersection2d(), PointIsInsideTriangle(), SMALL, sq(), UG_COND_THROW, VecDistanceSq(), VecDot(), VecLength(), VecLengthSq(), VecScale(), and VecSubtract().

Referenced by IntersectCoplanarTriangles(), and ResolveTriangleIntersections().

§ IntersectCoplanarTriangles() [2/3]

bool ug::IntersectCoplanarTriangles ( std::vector< vector3 > &  edgesOut,
const vector3 p00,
const vector3 p01,
const vector3 p02,
const vector3 p10,
const vector3 p11,
const vector3 p12 
)
inline

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge. Please note that the returned list may contain multiple copies of a point. This method works even if the triangles are not perfectly coplanar. In this case the projection of the triangle (p10,p11,p12) onto the triangle (p00,p01,p02) is intersected. Please note that the returned list may contain multiple copies of a point.

Note
This method performs the full test and does not perform any optimizations like an initial bounding-box check. For best performance this method should thus only be called if the two triangles do most likely intersect.

References CalculateTriangleNormal(), ConstructOrthonormalSystem(), IntersectCoplanarTriangles(), MatVecMult(), TransposedMatVecMult(), UG_LOG, VecCopy(), and VecSubtract().

§ IntersectCoplanarTriangles() [3/3]

template<class TAAPos >
bool ug::IntersectCoplanarTriangles ( std::vector< typename TAAPos::ValueType > &  edgesOut,
FaceVertices tri1,
FaceVertices tri2,
TAAPos  aaPos 
)

Intersects Coplanar Triangles.

fills a vector with the intersections on tri 1. Each pair of points corresponds to an intersection-edge.

References CalculateCenter(), ug::UGError::get_msg(), IntersectCoplanarTriangles(), ug::FaceVertices::num_vertices(), UG_THROW, and ug::FaceVertices::vertex().

§ InvalidateSmallLenses()

template<class T >
void ug::InvalidateSmallLenses ( Field< T > &  field,
size_t  thresholdCellCount,
const T &  noDataValue 
)

invalidates cells that belong to a small lense

Given a valid cell, the assoicated lense is the set of valid cells that can be reached from that cell by only traversing valid neighbors. Whether a lense is small or not is determined by the number of cells that belong to a lense.

References ug::Field< T >::at(), ug::Field< T >::height(), ug::Field< T >::size(), and ug::Field< T >::width().

Referenced by ug::RasterLayers::invalidate_small_lenses().

§ InverseFromInverseType() [1/2]

template<typename TMatrix , typename TInverseMatrixType , typename TVector >
void ug::InverseFromInverseType ( TMatrix &  mat,
TInverseMatrixType &  inv,
TVector &  x,
TVector &  e 
)

References MatMult().

Referenced by InverseFromInverseType().

§ InverseFromInverseType() [2/2]

template<typename TMatrix , typename TVector >
void ug::InverseFromInverseType ( TMatrix &  mat,
TMatrix &  inv,
TVector &  x,
TVector &  e 
)

§ InverseMatMult() [1/2]

bool ug::InverseMatMult ( number dest,
const double &  beta,
const number mat,
const number vec 
)
inline

§ InverseMatMult() [2/2]

§ Invert() [1/3]

template<typename T , size_t TUnknowns>
bool ug::Invert ( DenseMatrix< FixedArray2< T, TUnknowns, TUnknowns > > &  mat)

References getrf(), getri(), UG_ASSERT, and UG_COND_THROW.

§ Invert() [2/3]

§ Invert() [3/3]

bool ug::Invert ( number m)
inline

§ invert_L()

template<typename Matrix_type , typename Vector_type >
bool ug::invert_L ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b 
)

§ invert_U()

template<typename Matrix_type , typename Vector_type >
bool ug::invert_U ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
const number  eps = 1e-8 
)

§ InvertNdyn()

template<typename T >
bool ug::InvertNdyn ( DenseMatrix< T > &  mat)

References getrf(), and getri().

Referenced by InverseFromInverseType(), and Invert().

§ InvertSelection< MGSelector >()

template void ug::InvertSelection< MGSelector > ( MGSelector )

§ InvertSelection< Selector >()

template void ug::InvertSelection< Selector > ( Selector )

§ IsFinite()

template<typename TVector >
bool ug::IsFinite ( const ParallelVector< TVector > &  v)

§ IsFiniteAndNotTooBig() [1/10]

§ IsFiniteAndNotTooBig() [2/10]

template<std::size_t N, std::size_t M, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathMatrix< N, M, T > &  m)
inline

§ IsFiniteAndNotTooBig() [3/10]

template<typename TVector >
bool ug::IsFiniteAndNotTooBig ( const TVector &  v,
double  tooBigValue = 1e24 
)

§ IsFiniteAndNotTooBig() [4/10]

template<std::size_t N, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathVector< N, T > &  m)
inline

§ IsFiniteAndNotTooBig() [5/10]

template<size_t TRank, size_t N, typename T >
bool ug::IsFiniteAndNotTooBig ( const MathTensor< TRank, N, T > &  t)
inline

§ IsFiniteAndNotTooBig() [6/10]

template<typename TData , size_t N>
bool ug::IsFiniteAndNotTooBig ( const MathTensorX< TData, N > &  t)
inline

§ IsFiniteAndNotTooBig() [7/10]

template<typename TVector >
bool ug::IsFiniteAndNotTooBig ( const ParallelVector< TVector > &  v)

§ IsFiniteAndNotTooBig() [8/10]

template<typename TData >
bool ug::IsFiniteAndNotTooBig ( const std::vector< TData > &  t)
inline

§ IsFiniteAndNotTooBig() [9/10]

template<typename T >
bool ug::IsFiniteAndNotTooBig ( const DenseVector< T > &  v)
inline

§ IsFiniteAndNotTooBig() [10/10]

template<typename T >
bool ug::IsFiniteAndNotTooBig ( const DenseMatrix< T > &  m)
inline

§ IsInInterface()

bool ug::IsInInterface ( IndexLayout::Interface interface,
size_t  i 
)
inline

References find().

Referenced by AddIfUnique().

§ IsLonger()

bool ug::IsLonger ( const string &  a,
const string &  b 
)

§ IsMemTrackerEnabled()

bool ug::IsMemTrackerEnabled ( )
Returns
true if currently we are memory tracking

References bMemTracker.

§ IsShiftChar()

bool ug::IsShiftChar ( char  c)

References shiftCharactersLength.

Referenced by ConfigShift().

§ IsSliver()

UG_API int ug::IsSliver ( const vector3 v0,
const vector3 v1,
const vector3 v2,
const vector3 v3,
number  thresholdRatio 
)

Checks for all edges of the given tetrahedron whether the distance to the opposite edge is smaller than the given ratio of the length of the longest edge in the element.

Returns
integer to the first edge which is closer to its opposed edge than the given threshold allows. -1 if no such edge exists. Use tet_rules::OPPOSED_EDGE to retrieve the associated opposed edge.

References DistanceLineToLine(), ug::tet_rules::EDGE_VRT_INDS, ug::tet_rules::NUM_EDGES, ug::tet_rules::OPPOSED_EDGE, and VecDistanceSq().

Referenced by FindSlivers().

§ IsSubSurfaceElement()

template<class TElem >
bool ug::IsSubSurfaceElement ( MultiGrid mg,
TElem *  e,
bool  checkSides = false 
)

returns true, if the element lies one level below the surface

If checkSides == false, then only children of the same base type as TElem will be regarded. If checkSides == true, also children of the elements sides will be regarded, too. If all regarded children lie on the surface (i.e. do not have children them selfs), then the element is regarded as a surface element.

References ug::MultiGrid::get_child(), ug::Grid::get_side(), and ug::MultiGrid::num_children().

§ IsVectorFiniteAndNotTooBig()

template<typename T >
bool ug::IsVectorFiniteAndNotTooBig ( const T &  t)
inline

§ IsVertical() [1/3]

static bool ug::IsVertical ( const vector1 ,
const vector1  
)
inlinestatic

§ IsVertical() [2/3]

static bool ug::IsVertical ( const vector2 from,
const vector2 to 
)
inlinestatic

References SMALL.

§ IsVertical() [3/3]

static bool ug::IsVertical ( const vector3 from,
const vector3 to 
)
inlinestatic

References SMALL.

§ iterator_cast()

§ JuliaString()

template<typename TStorage >
std::string ug::JuliaString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

§ L2Error() [1/4]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder,
const char *  subsets 
)

computes the l2 error function on the whole domain or on some subsets

This function computes the L2-difference between a given analytic function and a grid function.

Parameters
[in]ExactSolanalytic function
[in]spGridFctgrid function
[in]cmpsymbolic name of component function
[in]timetime point
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), make_sp(), and UG_THROW.

Referenced by L2Error().

§ L2Error() [2/4]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< UserData< number, TGridFunction::dim > >  spExactSol,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time,
int  quadOrder 
)

References L2Error(), and make_sp().

§ L2Error() [3/4]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder,
const char *  subsets 
)

computes the l2 error function between to function

This function computes the L2-difference between two grid functions that may be defined on different grids. The element loop is performed over the finer level.

Parameters
[in]spGridFct1grid function 1
[in]cmp1symbolic name of component function
[in]spGridFct2grid function 2
[in]cmp2symbolic name of component function
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to compute
Returns
number l2-norm of difference

References IntegrateSubsets(), make_sp(), and UG_THROW.

§ L2Error() [4/4]

template<typename TGridFunction >
number ug::L2Error ( SmartPtr< TGridFunction >  spGridFct1,
const char *  cmp1,
SmartPtr< TGridFunction >  spGridFct2,
const char *  cmp2,
int  quadOrder 
)

References L2Error().

§ L2Norm() [1/2]

template<typename TGridFunction >
number ug::L2Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder,
const char *  subsets 
)

This function computes the L2-norm of a grid function.

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of function
[in]quadOrderorder of quadrature rule
[in]subsetssubsets, where to interpolate (NULL indicates that all full-dimensional subsets shall be considered)
Returns
number l2-norm

References IntegrateSubsets(), make_sp(), and UG_THROW.

Referenced by L2Norm().

§ L2Norm() [2/2]

template<typename TGridFunction >
number ug::L2Norm ( SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
int  quadOrder 
)

This function computes the L2-norm of a grid function on all full-dim subsets.

Parameters
[in]spGridFctgrid function
[in]cmpsymbolic name of function
[in]quadOrderorder of quadrature rule
Returns
number l2-norm

References L2Norm().

§ LagrangeNumDoFOnSub()

size_t ug::LagrangeNumDoFOnSub ( const ReferenceObjectID  elem,
const ReferenceObjectID  sub,
const size_t  p 
)

§ LagrangeNumDoFs()

size_t ug::LagrangeNumDoFs ( const ReferenceObjectID  elem,
const size_t  p 
)

§ LaplacianSmooth()

template<class TIterator , class AAPosVRT >
void ug::LaplacianSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations 
)

§ LevenshteinDistance()

size_t ug::LevenshteinDistance ( const string &  s1,
const string &  s2 
)

§ LIB_ALG_AMG()

DebugID ug::LIB_ALG_AMG ( "LIB_ALG_AMG"  )

§ LIB_ALG_LINEAR_OPERATOR()

DebugID ug::LIB_ALG_LINEAR_OPERATOR ( "LIB_ALG_LINEAR_OPERATOR"  )

§ LIB_ALG_LINEAR_SOLVER()

DebugID ug::LIB_ALG_LINEAR_SOLVER ( "LIB_ALG_LINEAR_SOLVER"  )

§ LIB_ALG_MATRIX()

DebugID ug::LIB_ALG_MATRIX ( "LIB_ALG_MATRIX"  )

§ LIB_ALG_VECTOR()

DebugID ug::LIB_ALG_VECTOR ( "LIB_ALG_VECTOR"  )

§ LIB_DISC()

DebugID ug::LIB_DISC ( "LIB_DISC"  )

§ LIB_DISC_ASSEMBLE()

DebugID ug::LIB_DISC_ASSEMBLE ( "LIB_DISC_ASSEMBLE"  )

§ LIB_DISC_D3F()

DebugID ug::LIB_DISC_D3F ( "LIB_DISC_D3F"  )

§ LIB_DISC_DISCRETE_FUNCTION()

DebugID ug::LIB_DISC_DISCRETE_FUNCTION ( "LIB_DISC_DISCRETE_FUNCTION"  )

§ LIB_DISC_LINKER()

DebugID ug::LIB_DISC_LINKER ( "LIB_DISC_LINKER"  )

§ LIB_DISC_MULTIGRID()

DebugID ug::LIB_DISC_MULTIGRID ( "LIB_DISC_MULTIGRID"  )

§ LIB_DISC_NEWTON()

DebugID ug::LIB_DISC_NEWTON ( "LIB_DISC_NEWTON"  )

§ LIB_DISC_OPERATOR_INVERSE()

DebugID ug::LIB_DISC_OPERATOR_INVERSE ( "LIB_DISC_OPERATOR_INVERSE"  )

§ LIB_DISC_OUTPUT()

DebugID ug::LIB_DISC_OUTPUT ( "LIB_DISC_OUTPUT"  )

§ LIB_DISC_TRANSFER()

DebugID ug::LIB_DISC_TRANSFER ( "LIB_DISC_TRANSFER"  )

§ LIB_GRID()

DebugID ug::LIB_GRID ( "LIB_GRID"  )

§ LIB_GRID_REFINER()

DebugID ug::LIB_GRID_REFINER ( "LIB_GRID_REFINER"  )

§ LIB_PCL()

DebugID ug::LIB_PCL ( "LIB_PCL"  )

§ LoadDomain< Domain1d >() [1/2]

template void ug::LoadDomain< Domain1d > ( Domain1d domain,
const char *  filename 
)

§ LoadDomain< Domain1d >() [2/2]

template void ug::LoadDomain< Domain1d > ( Domain1d domain,
const char *  filename,
int  procId 
)

Referenced by MaxElementDiameter().

§ LoadDomain< Domain2d >() [1/2]

template void ug::LoadDomain< Domain2d > ( Domain2d domain,
const char *  filename 
)

§ LoadDomain< Domain2d >() [2/2]

template void ug::LoadDomain< Domain2d > ( Domain2d domain,
const char *  filename,
int  procId 
)

Referenced by MaxElementDiameter().

§ LoadDomain< Domain3d >() [1/2]

template void ug::LoadDomain< Domain3d > ( Domain3d domain,
const char *  filename 
)

§ LoadDomain< Domain3d >() [2/2]

template void ug::LoadDomain< Domain3d > ( Domain3d domain,
const char *  filename,
int  procId 
)

Referenced by MaxElementDiameter().

§ LoadGrid()

template<class TAPos >
static bool ug::LoadGrid ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPos &  aPos,
int  procId 
)
static

§ LoadGrid3d() [1/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition1 aPos 
)
static

§ LoadGrid3d() [2/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition2 aPos 
)
static

§ LoadGrid3d() [3/3]

static bool ug::LoadGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition3 aPos 
)
static

References LoadGrid3d_IMPL().

Referenced by LoadGrid().

§ LoadGrid3d_IMPL()

§ LoadGridFromART()

§ LoadGridFromASC()

§ LoadGridFromDUMP()

bool ug::LoadGridFromDUMP ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition 
)

loads dump-files.

A dump-file is a very simple format that describes a triangular grid. The format is an ASCII format. a # at the beginning of a line marks a comment. other lines should either be empty or should describe a triangle. a triangle is described be three coordinate-triples. Space is used as seperator. a file could look like this:

start of .dump file

a single triangle

0 0 0 1 0 0 0 1 0

end of .dump file

References ug::Grid::attach_to_vertices(), ug::ISubsetHandler::get_default_subset_index(), ug::Grid::has_vertex_attachment(), LOG, ReadTetrahedrons(), ReadTriangles(), ug::ISubsetHandler::set_default_subset_index(), and split_parameters().

Referenced by LoadGrid3d_IMPL().

§ LoadGridFromELE()

bool ug::LoadGridFromELE ( Grid grid,
const char *  filename,
ISubsetHandler pSH,
APosition aPos 
)

References ImportGridFromTETGEN(), and LOG.

Referenced by LoadGrid3d_IMPL().

§ LoadGridFromFile() [1/12]

template<class TAPos >
UG_API bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References LoadGrid().

Referenced by LoadDomain(), ug::bridge::LoadGrid(), LoadMarkerPointsFromFile(), and ug::bridge::TestNTree().

§ LoadGridFromFile() [2/12]

template<class TAPos >
UG_API bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References LoadGrid().

§ LoadGridFromFile() [3/12]

template<class TAPos >
bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos,
int  procId = -1 
)

Loads a grid from a file. Position data is written to the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References LoadGrid().

Referenced by LoadDomain(), ug::bridge::LoadGrid(), LoadMarkerPointsFromFile(), and ug::bridge::TestNTree().

§ LoadGridFromFile() [4/12]

template<class TAPos >
bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
TAPos &  aPos,
int  procId 
)

References LoadGrid().

§ LoadGridFromFile() [5/12]

UG_API bool ug::LoadGridFromFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
int  procId = -1 
)

Loads a grid from a file. Position data is written to aPosition.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References aPosition, and LoadGrid().

§ LoadGridFromFile() [6/12]

UG_API bool ug::LoadGridFromFile ( Grid grid,
const char *  filename,
int  procId 
)

Loads a grid from a file. Position data is written to aPosition.

If the given file can't be found, LoadGridFromFile will looks for it reative to the following additional places:

The method posts the following messages at the message hub of the given grid:

  • GridMessage_Creation(GMCT_CREATION_STARTS)
  • GridMessage_Creation(GMCT_CREATION_STOPS)

procId can be used to only load a grid on one process in a parallel environment. By default, procId is set to -1, which means that the domain is loaded on all processes.

References aPosition, and LoadGrid().

§ LoadGridFromFile() [7/12]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector1 ,
int   
)

§ LoadGridFromFile() [8/12]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector2 ,
int   
)

§ LoadGridFromFile() [9/12]

template bool ug::LoadGridFromFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector3 ,
int   
)

§ LoadGridFromFile() [10/12]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector1 ,
int   
)

§ LoadGridFromFile() [11/12]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector2 ,
int   
)

§ LoadGridFromFile() [12/12]

template bool ug::LoadGridFromFile ( Grid ,
const char *  ,
AVector3 ,
int   
)

Referenced by SaveGridLevelToFile().

§ LoadGridFromLGB()

bool ug::LoadGridFromLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
APosition  aPos = aPosition 
)

Loads a grid from LibGridBinary-format. Awaits a list of subset-handler-pointers and the number of subset-handlers that shall be read. Make sure that all passed subset-handlers are already registered at the grid.

References ug::Grid::attach_to_vertices(), ug::BinaryBuffer::buffer(), DeserializeGridElements(), DeserializeSubsetHandler(), ug::Grid::get_options(), GRIDOPT_NONE, ug::Grid::has_vertex_attachment(), LGBC_SUBSET_HANDLER, LOG, ug::BinaryBuffer::read(), ug::BinaryBuffer::reserve(), ug::Grid::set_options(), ug::BinaryBuffer::set_write_pos(), and UG_LOG.

Referenced by LoadGrid3d_IMPL().

§ LoadGridFromMSH()

bool ug::LoadGridFromMSH ( Grid grid,
const char *  filename,
ISubsetHandler psh = NULL,
AVector3 aPos = aPosition 
)

loads a grid from the GMSH ascii .msh format

Please check the GMSH manual for syntax information.

References ug::ISubsetHandler::assign_subset(), ug::Grid::attach_to_vertices(), ug::Grid::create(), ug::Grid::has_vertex_attachment(), ug::Grid::num(), ug::MathVector< N, T >::size(), and UG_LOG.

Referenced by LoadGrid3d_IMPL().

§ LoadGridFromOBJ()

bool ug::LoadGridFromOBJ ( Grid grid,
const char *  filename,
AVector3 aPos = aPosition,
AVector2 paTexCoord = NULL,
ISubsetHandler pSubsetHandler = NULL,
std::vector< OBJMaterial > *  pvMaterials = NULL 
)

§ LoadGridFromSMESH()

§ LoadGridFromSTL()

bool ug::LoadGridFromSTL ( Grid grid,
const char *  filename,
ISubsetHandler pSH = NULL,
AVector3 aPos = aPosition,
AVector3 aNormFACE = aNormal 
)

loads stl-ascii-files.

if aPosition is not attached to the vertices of the grid, it will be automatically attached. If however aNormal is not attached to the faces of the grid, it will be ignored.

References LoadGridFromSTL_ASCII(), LoadGridFromSTL_BINARY(), and STLFileHasASCIIFormat().

Referenced by LoadGrid3d_IMPL().

§ LoadGridFromSTL_ASCII()

§ LoadGridFromSTL_BINARY()

§ LoadGridFromTXT()

bool ug::LoadGridFromTXT ( Grid grid,
const char *  filename,
AVector3 aPos 
)

§ LoadGridFromUGX() [1/3]

template<class TAPosition >
bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

§ LoadGridFromUGX() [2/3]

bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Reads a grid to an ugx file.

Before reading a grid from file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of LoadGridFromUGX.

If no standard attachment is found, aPosition will be attached and used.

References aPosition, aPosition1, aPosition2, ug::Grid::attach_to_vertices(), and ug::Grid::has_vertex_attachment().

Referenced by LoadGrid().

§ LoadGridFromUGX() [3/3]

template<class TAPosition >
bool ug::LoadGridFromUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
APosition aPos 
)

Reads a grid to an ugx file. internally uses GridReaderUGX.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

§ LoadGridFromVTU() [1/3]

template<class TAPosition >
bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

§ LoadGridFromVTU() [2/3]

template<class TAPosition >
bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename,
APosition aPos 
)

Reads a grid to an vtu (vtk) file. internally uses GridReaderVTK.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

§ LoadGridFromVTU() [3/3]

bool ug::LoadGridFromVTU ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Reads a grid to a vtu (vtk unstructured mesh) file.

Before reading a grid from file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of LoadGridFromVTU.

If no standard attachment is found, aPosition will be attached and used.

References aPosition, aPosition1, aPosition2, ug::Grid::attach_to_vertices(), and ug::Grid::has_vertex_attachment().

Referenced by LoadGrid().

§ LoadHeightfieldFromASC()

§ LoadMarkerPointsFromFile()

§ LoadPlugins()

§ LoadVector()

template<typename TGridFunction >
void ug::LoadVector ( TGridFunction &  u,
const char *  filename 
)

References dim, PROFILE_FUNC, and ReadVector().

§ LogIndexLayout()

void ug::LogIndexLayout ( IndexLayout layout,
int  depth = 0 
)

Logs the internals of an index layout.

Writes information about an index interface. If depth >= 1 is passed, then also the current indices in the interfaces are printed.

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), GetLogAssistant(), pcl::SingleLevelLayout< TInterface >::proc_id(), and UG_LOG.

Referenced by LogIndexLayoutOnAllProcs().

§ LogIndexLayoutOnAllProcs()

void ug::LogIndexLayoutOnAllProcs ( IndexLayout layout,
int  depth 
)

§ LUDecomp()

template<typename matrix_t >
bool ug::LUDecomp ( DenseMatrix< matrix_t > &  A,
size_t *  pInterchange 
)

§ LUDecompIKJ()

template<typename matrix_t >
bool ug::LUDecompIKJ ( DenseMatrix< matrix_t > &  A,
size_t *  pInterchange 
)

References dabs(), UG_ASSERT, and UG_LOG.

§ MAIN()

DebugID ug::MAIN ( "MAIN"  )

§ MakeConsistent()

§ MakeDelaunay() [1/2]

§ MakeDelaunay() [2/2]

template bool ug::MakeDelaunay ( DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &  )

Referenced by QualityGridGeneration().

§ MakeGeometry3d()

template<class TAPos >
SPIGeometry3d ug::MakeGeometry3d ( Grid grid,
TAPos  aPos 
)

§ MakeTmpFile()

string ug::MakeTmpFile ( string  filename,
const string &  extension,
bool &  bSuccess 
)

!!! Serial i/o version !!!

References FileExists(), and PROFILE_FUNC.

Referenced by ug::bridge::LUACompiler::createC(), and FileSize().

§ MapLagrangeMultiIndexQuad()

void ug::MapLagrangeMultiIndexQuad ( std::vector< size_t > &  vOrientOffset,
const int  id0,
bool  sameOrientation,
const size_t  pOuter 
)

References UG_THROW.

Referenced by ComputeOrientationOffsetLagrange().

§ MapLagrangeMultiIndexTriangle()

void ug::MapLagrangeMultiIndexTriangle ( std::vector< size_t > &  vOrientOffset,
const int  id0,
bool  sameOrientation,
const size_t  pOuter 
)

References UG_THROW.

Referenced by ComputeOrientationOffsetLagrange().

§ MaplePrint()

template<typename TStorage >
void ug::MaplePrint ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

References UG_LOG.

§ mark_if_periodic()

§ MarkAllElemsForAssemblyButHSlaves() [1/2]

template<typename TElem >
static void ug::MarkAllElemsForAssemblyButHSlaves ( Grid grid,
BoolMarker bMarker 
)
static

This function marks all grid elements of type TElem for assembly BUT H-slaves in a BoolMarker.

Parameters
[out]gridGrid
[out]bMarkerBoolMarker containing all marked elements of type TElem BUT H-slaves

References ug::Grid::begin(), ug::DistributedGridManager::contains_status(), ug::Grid::distributed_grid_manager(), ug::Grid::end(), ES_H_SLAVE, ug::BoolMarker::mark(), and ug::BoolMarker::unmark().

§ MarkAllElemsForAssemblyButHSlaves() [2/2]

template<typename TAlgebra >
static void ug::MarkAllElemsForAssemblyButHSlaves ( SmartPtr< IAssemble< TAlgebra > >  ass,
Grid grid 
)
static

This function marks all elements for assembly BUT H-slaves in a BoolMarker and sets it in the assemble tuner of the given assemble object. Necessary to avoid multiple assembly of manifold elements when using inner_boundary discretization in parallel mode.

Parameters
[out]gridSmart pointer to assemble object with assemble tuner as member
[out]assGrid

§ MarkAllFromInterface() [1/2]

template<class T >
void ug::MarkAllFromInterface ( std::vector< T > &  mark,
const IndexLayout::Interface interface,
const T &  default_val 
)

References MarkAllFromLayout().

§ MarkAllFromInterface() [2/2]

void ug::MarkAllFromInterface ( std::vector< bool > &  mark,
const IndexLayout::Interface interface 
)

Marks all indices in the IndexLayout::Interface with true

Parameters
marka std::vector which has to be big enough for maximum index in interface
layout

Referenced by AddIfUnique(), and MarkAllFromLayout().

§ MarkAllFromLayout() [1/2]

template<class T >
void ug::MarkAllFromLayout ( std::vector< T > &  mark,
const IndexLayout layout,
const T &  default_val 
)

§ MarkAllFromLayout() [2/2]

void ug::MarkAllFromLayout ( std::vector< bool > &  mark,
const IndexLayout layout 
)

Marks all indices in the IndexLayout with true

Parameters
marka std::vector which has to be big enough for maximum index in layout
layout

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), pcl::SingleLevelLayout< TInterface >::interface(), and MarkAllFromInterface().

Referenced by ug::SchurPrecond< TAlgebra >::get_skeleton_slicing(), and MarkAllFromInterface().

§ MarkCorners() [1/2]

template<class TVertexIterator , class TAPosition >
UG_API void ug::MarkCorners ( Grid grid,
ISubsetHandler sh,
TVertexIterator  vrtsBegin,
TVertexIterator  vrtsEnd,
Grid::edge_traits::callback  cbPathEdge,
int  subsetIndex,
number  angle,
TAPosition &  aPos 
)

Assigns vertices between vrtsBegin and vrtsEnd to the specified subsetIndex if they are adjacent to more than 2 path edges or to exactly 1 path edge or. If a vertex is adjacent to exactly 2 path edges, it will be assigned if the angle between those edges is smaller than the given threshold-angle.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), deg_to_rad(), GetConnectedVertex(), ug::Grid::has_vertex_attachment(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSubtract().

§ MarkCorners() [2/2]

template<class TVertexIterator , class TAPosition >
void ug::MarkCorners ( Grid grid,
ISubsetHandler sh,
TVertexIterator  vrtsBegin,
TVertexIterator  vrtsEnd,
Grid::edge_traits::callback  cbPathEdge,
int  subsetIndex,
number  angle,
TAPosition &  aPos 
)

Assigns vertices between vrtsBegin and vrtsEnd to the specified subsetIndex if they are adjacent to more than 2 path edges or to exactly 1 path edge or. If a vertex is adjacent to exactly 2 path edges, it will be assigned if the angle between those edges is smaller than the given threshold-angle.

References ug::ISubsetHandler::assign_subset(), ug::Grid::associated_elements(), deg_to_rad(), GetConnectedVertex(), ug::Grid::has_vertex_attachment(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSubtract().

§ MarkCreaseEdges() [1/2]

template<class TEdgeIterator >
void ug::MarkCreaseEdges ( Grid grid,
ISubsetHandler sh,
TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
int  subsetIndex,
number  angle,
APosition aPos = aPosition,
ANormal paFaceNormal = NULL 
)

paFaceNormal is ignored in the current implementation. In the moment normals are calculated on the fly and not stored. That means that the normal of each single face is calculated up to four times. This can be improved!

References ug::ISubsetHandler::assign_subset(), CalculateNormal(), GetAssociatedFaces(), ug::Grid::has_vertex_attachment(), and VecDot().

§ MarkCreaseEdges() [2/2]

template<class TEdgeIterator >
UG_API void ug::MarkCreaseEdges ( Grid grid,
ISubsetHandler sh,
TEdgeIterator  edgesBegin,
TEdgeIterator  edgesEnd,
int  subsetIndex,
number  angle,
APosition aPos = aPosition,
ANormal paFaceNormal = NULL 
)

paFaceNormal is ignored in the current implementation. In the moment normals are calculated on the fly and not stored. That means that the normal of each single face is calculated up to four times. This can be improved!

References ug::ISubsetHandler::assign_subset(), CalculateNormal(), GetAssociatedFaces(), ug::Grid::has_vertex_attachment(), and VecDot().

§ MarkElements()

template<typename TElem >
void ug::MarkElements ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  TOL,
number  refineFrac,
number  coarseFrac,
int  maxLevel 
)

marks elements according to an attached error value field

This function marks elements for refinement and coarsening. The passed error attachment is used as a weight for the amount of the error an each element. All elements that have an indicated error with s* max <= err <= max are marked for refinement. Here, max is the maximum error measured, s is a scaling quantity chosen by the user. In addition, all elements with an error smaller than TOL (user defined) are not refined.

Parameters
[in,out]refinerRefiner, elements marked on exit
[in]dddof distribution
[in]TOLMinimum error, such that an element is marked
[in]scalescaling factor indicating lower bound for marking
[in]aaErrorError value attachment to elements ( \( \eta_i^2 \))

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::mark(), MarkElementsForRefinement(), ug::DoFDistribution::multi_grid(), pcl::NumProcs(), PCL_RO_SUM, pcl::ProcRank(), RM_COARSEN, RM_REFINE, and UG_LOG.

§ MarkElementsAbsolute()

template<typename TElem >
void ug::MarkElementsAbsolute ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  refTol,
number  coarsenTol,
int  minLevel,
int  maxLevel,
bool  refTopLvlOnly = false 
)

marks elements according to an attached error value field

This function marks elements for refinement. The passed error attachment is used as a weight for the amount of the error an each element. All elements that have an indicated error > refineTol are marked for refinement and elements with an error < coarsenTol are marked for coarsening

Parameters
[in,out]refinerRefiner, elements marked on exit
[in]dddof distribution
[in]refTolall elements with error > refTol are marked for refinement. If refTol is negative, no element will be marked for refinement.
[in]coarsenTolall elements with error < coarsenTol are marked for coarsening. If coarsenTol is negative, no element will be marked for coarsening.
[in]aaErrorError value attachment to elements

References pcl::ProcessCommunicator::allreduce(), ug::IRefiner::mark(), ug::DoFDistribution::multi_grid(), pcl::NumProcs(), PCL_RO_SUM, pcl::ProcRank(), RM_COARSEN, RM_REFINE, and UG_LOG.

Referenced by MarkForAdaption_GradientAverage(), MarkForAdaption_GradientJump(), MarkForAdaption_L2ErrorExact(), MarkForAdaption_ResidualErrorP1Absolute(), and MarkForAdaption_ResidualErrorP1Relative().

§ MarkElementsForCoarsening()

template<typename TElem >
void ug::MarkElementsForCoarsening ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  TOL,
number  safety 
)

marks elements for coarsening according to an attached error value field

This function marks elements for coarsening. The passed error attachment is used as an indicator for the the error on each element. Elements one level below surface are marked if the average error of its children is lower than tol / #elems / 4 / safety. The safety factor is supposed to ensure that elements are not refined and coarsened back and forth in a dynamic adaptive simulation.

Parameters
[in]aaErrorerror value attachment to elements ( \( \eta_i^2 \))
[in,out]refinerrefiner, elements marked on exit
[in]dddof distribution
[in]toltolerated global error
[in]safetysafety factor

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::get_mark(), ug::IRefiner::mark(), ug::DoFDistribution::multi_grid(), pcl::NumProcs(), PCL_RO_SUM, RM_COARSEN, and UG_LOG.

Referenced by MarkElementsForRefinement().

§ MarkElementsForRefinement()

template<typename TElem >
void ug::MarkElementsForRefinement ( MultiGrid::AttachmentAccessor< TElem, ug::Attachment< number > > &  aaError,
IRefiner refiner,
ConstSmartPtr< DoFDistribution dd,
number  tol,
int  maxLevel 
)

marks elements according for refinement to an attached error value field

This function marks elements for refinement. The passed error attachment is used as an indicator for the the error on each element. Elements are refined if the error sum taken over all elements is greater than the tolerance value tol. In that case, elements with an indicated error of err >= tol / #elems are marked for refinement if and only if their multigrid level is below the tolerated maximum of maxLevel.

Parameters
[in]aaErrorerror value attachment to elements ( \( \eta_i^2 \))
[in,out]refinerrefiner, elements marked on exit
[in]dddof distribution
[in]toltolerated global error (no refinement if error below)
[in]maxLevelmaximal refinement level in multigrid

References pcl::ProcessCommunicator::allreduce(), ComputeMinMaxTotal(), ug::IRefiner::mark(), MarkElementsForCoarsening(), ug::DoFDistribution::multi_grid(), pcl::NumProcs(), PCL_RO_SUM, RM_REFINE, and UG_LOG.

Referenced by MarkElements().

§ MarkForAdaption_AbsoluteGradientIndicator()

§ MarkForAdaption_AbsoluteGradientJumpIndicator()

§ MarkForAdaption_GradientAverage()

§ MarkForAdaption_GradientIndicator()

§ MarkForAdaption_GradientJump()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_GradientJump ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
const char *  cmp,
number  refFrac,
int  minLvl,
int  maxLvl,
std::string  jumpType 
)

This gradient jump error indicator runs in parallel environments and works with h-nodes.

Parameters
[in]refFracgiven minElemError and maxElemError, all elements with an error > minElemError+refFrac*(maxElemError-minElemError) will be refined.
[in]jumpTypedefines the type of jump that shall be evaluated:
  • norm: the difference between gradient norms on neighboring elements is regarded.
  • sideInt: The integral over the normal component of the gradient on each side is regarded.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::DoFDistributionInfoProvider::fct_id_by_name(), MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, PROFILE_FUNC, UG_COND_THROW, and UG_THROW.

§ MarkForAdaption_GradientJumpIndicator()

§ MarkForAdaption_L2ErrorExact()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_L2ErrorExact ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  spExactSol,
const char *  cmp,
number  minL2Error,
number  maxL2Error,
number  refFrac,
int  minLvl,
int  maxLvl,
number  time,
int  quadOrder 
)
Parameters
[in]maxL2Errorerrors below maxL2Error are considered fine.

References pcl::ProcessCommunicator::allreduce(), dim, make_sp(), MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, PCL_RO_SUM, PROFILE_FUNC, sq(), UG_COND_THROW, and UG_LOG.

§ MarkForAdaption_ResidualErrorP1Absolute()

template<typename TDomain , typename TAlgebra >
number ug::MarkForAdaption_ResidualErrorP1Absolute ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  f,
const char *  cmp,
number  time,
number  refTol,
number  coarsenTol,
int  maxLvl,
int  quadOrder,
std::string  quadType,
bool  refTopLvlOnly = false 
)

A classical residual error for the poisson problem on linear shape functions works with h-nodes.

Evaluates the element residual error sqrt{hT^2 * ||RT||^2 + 0.5*sum(hS*||RS||^2)} where the sum contains all sides S of an element T. RT denotes the residuum and RS the gradient-jump over sides of T.

Parameters
[in]refTolThreshold value. Only elements with a higher residual error than refTol are refined.
Returns
the fraction of the residual error in marked elements compared to the total residual error.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::GridFunction< TDomain, TAlgebra >::domain(), EvaluateResidualErrorP1(), ug::IRefiner::get_mark(), MarkElementsAbsolute(), PCL_RO_SUM, PROFILE_FUNC, RM_ANISOTROPIC, RM_REFINE, and sq().

§ MarkForAdaption_ResidualErrorP1Relative()

template<typename TDomain , typename TAlgebra >
void ug::MarkForAdaption_ResidualErrorP1Relative ( IRefiner refiner,
SmartPtr< GridFunction< TDomain, TAlgebra > >  u,
SmartPtr< UserData< number, TDomain::dim > >  f,
const char *  cmp,
number  time,
number  refFrac,
int  minLvl,
int  maxLvl,
int  quadOrder,
std::string  quadType 
)

A classical residual error for the poisson problem on linear shape functions works with h-nodes.

Evaluates the element residual error sqrt{hT^2 * ||RT||^2 + 0.5*sum(hS*||RS||^2)} where the sum contains all sides S of an element T. RT denotes the residuum and RS the gradient-jump over sides of T.

Parameters
[in]refFracgiven minElemError and maxElemError, all elements with an error > minElemError+refFrac*(maxElemError-minElemError) will be refined.
Todo:
: Add coarsenFrac and apply coarsen-marks, too.

References pcl::ProcessCommunicator::allreduce(), ug::GridFunction< TDomain, TAlgebra >::domain(), EvaluateResidualErrorP1(), MarkElementsAbsolute(), PCL_RO_MAX, PCL_RO_MIN, and PROFILE_FUNC.

§ MarkForAnisotropicRefinement()

template<class TRef , class TIter , class TAAPos >
void ug::MarkForAnisotropicRefinement ( Grid grid,
TRef &  ref,
number  minEdgeRatio,
TIter  elemsBegin,
TIter  elemsEnd,
TAAPos  aaPos 
)
Parameters
gridThe whose elements shall be marked.
refThe specified refiner has to feature methods 'mark(elem_t*, byte)' where elem_t = Vertex, Edge, Face, and Volume. Note that you may also pass a selector instead of a refiner.
minEdgeRatioIf the ratio between the shortest and the longest edge of an element is smaller than minEdgeRatio, the element is considered to be anisotropic. The element itself and all of its edges with a smaller ratio ar marked for refinement.
elemsBeginIterator to the first element in the sequence of elements that shall be checked.
elemsEndIterator to the (pseudo-) element directly behind the last element in the sequence of elements that shall be checked.
aaPosA VertexAttachmentAccessor to an APosition compatible type.

References ug::Grid::associated_elements(), EdgeLengthSq(), end_for, for_each_in_vec, RM_ANISOTROPIC, RM_CLOSURE, RM_REFINE, ug::PointerConstArray< TPtr >::size(), SMALL_SQ, and sq().

Referenced by MarkForRefinement_AnisotropicElements().

§ mask()

§ MatAdd()

template<typename X , typename Y , typename M >
void ug::MatAdd ( MatrixOperator< M, X, Y > &  res,
number  alpha1,
MatrixOperator< M, X, Y > &  A1,
number  alpha2,
MatrixOperator< M, X, Y > &  A2 
)

§ MatAdditiveToConsistentOnDiag()

template<typename TAlgebra >
void ug::MatAdditiveToConsistentOnDiag ( typename TAlgebra::matrix_type *  pMat,
const IndexLayout masterLayout,
const IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

changes parallel storage type from additive to consistent on diagonal of a matrix

This function changes the storage type of a matrix from additive to consistent on the diagonal. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[in,out]pVecParallel Vector
[in]masterLayoutMaster Layout
[in]slaveLayoutSlave Layout
[in]pComParallel Communicator

References AdditiveToConsistent(), MatExtractDiagOnLayout(), MatWriteDiagOnLayout(), and PROFILE_FUNC_GROUP.

§ matDiagMax() [1/2]

double ug::matDiagMax ( const double  d)
inline

§ matDiagMax() [2/2]

template<typename T1 >
double ug::matDiagMax ( const DenseMatrix< T1 > &  mat)
inline

§ MatExtractDiagOnLayout()

template<typename TMatrix , typename TVector >
void ug::MatExtractDiagOnLayout ( TVector *  pDiagVector,
const TMatrix *  pMatrix,
const IndexLayout Layout 
)

extracts diagonal of a matrix for interface indices

This function extracts diagonal values of a matrix for all interface indices. No communication is performed.

Parameters
[out]pDiagVectorVector with diagonal entries
[in]pMatrixMatrix
[in]LayoutIndex Layout

References pcl::SingleLevelLayout< TInterface >::begin(), BlockRef(), pcl::SingleLevelLayout< TInterface >::end(), GetCols(), and PROFILE_FUNC_GROUP.

Referenced by MatAdditiveToConsistentOnDiag().

§ MatIdentity()

template<typename X , typename Y , typename M >
void ug::MatIdentity ( MatrixOperator< M, X, Y > &  opOut)

§ MatlabString()

template<typename TStorage >
std::string ug::MatlabString ( const DenseMatrix< TStorage > &  A,
const char *  name 
)

§ MatMult()

§ MatMultAdd() [1/4]

§ MatMultAdd() [2/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number alpha2,
const vector_t &  v2,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + beta1 * A1 *w1;

References MatMultAdd().

§ MatMultAdd() [3/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAdd().

§ MatMultAdd() [4/4]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAdd().

§ MatMultAddDirect() [1/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number alpha1,
const vector_t &  v1 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1;

References VecScaleAssign().

Referenced by ug::mat_operations_class< vector_t, matrix_t, MATRIX_USE_GLOBAL_FUNCTIONS >::MatMultAdd(), and MatMultAddDirect().

§ MatMultAddDirect() [2/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number alpha1,
const vector_t &  v1,
const number alpha2,
const vector_t &  v2 
)
inline

calculates dest = alpha1*v1 + beta1 * A1 *w1 + alpha2*v2;

References MatMultDirect(), and VecScaleAdd().

§ MatMultAddDirect() [3/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2;

References MatMultAddDirect(), and MatMultDirect().

§ MatMultAddDirect() [4/6]

template<typename vector_t , typename matrix_t >
bool ug::MatMultAddDirect ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1,
const number beta2,
const matrix_t &  A2,
const vector_t &  w2,
const number alpha1,
const vector_t &  v1 
)
inline

calculates dest = beta1 * A1 *w1 + beta2 * A2*w2 + alpha1*v1;

References MatMultAddDirect(), and VecScaleAdd().

§ MatMultAddDirect() [5/6]

template<typename matrix_type , typename vector_type >
bool ug::MatMultAddDirect ( ParallelVector< vector_type > &  dest,
const number alpha1,
const ParallelVector< vector_type > &  v1,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

§ MatMultAddDirect() [6/6]

template<typename matrix_type , typename vector_type >
bool ug::MatMultAddDirect ( ParallelVector< vector_type > &  dest,
const number alpha1,
const ParallelVector< vector_type > &  v1,
const number alpha2,
const ParallelVector< vector_type > &  v2,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

§ MatMultDirect()

template<typename matrix_type , typename vector_type >
bool ug::MatMultDirect ( ParallelVector< vector_type > &  dest,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

§ MatMultTransposed()

template<typename vector_t , typename matrix_t >
bool ug::MatMultTransposed ( vector_t &  dest,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

§ MatMultTransposedAdd()

template<typename vector_t , typename matrix_t >
bool ug::MatMultTransposedAdd ( vector_t &  dest,
const number alpha1,
const vector_t &  v1,
const number beta1,
const matrix_t &  A1,
const vector_t &  w1 
)
inline

§ MatMultTransposedDirect()

template<typename matrix_type , typename vector_type >
void ug::MatMultTransposedDirect ( ParallelVector< vector_type > &  dest,
const number beta1,
const ParallelMatrix< matrix_type > &  A1,
const ParallelVector< vector_type > &  w1 
)
inline

§ MatScale()

template<typename X , typename Y , typename M >
void ug::MatScale ( MatrixOperator< M, X, Y > &  A,
number  alpha 
)

§ matSum() [1/3]

void ug::matSum ( double &  erg,
double  alpha,
double  vec 
)
inline

Referenced by matSum().

§ matSum() [2/3]

template<typename T1 , typename T2 >
void ug::matSum ( T1 &  erg,
double  alpha,
T2 &  mat 
)
inline

References alpha.

§ matSum() [3/3]

template<typename T1 , typename T2 >
T1 ug::matSum ( double  alpha,
T2 &  mat 
)
inline

References matSum().

§ matTrace() [1/2]

double ug::matTrace ( const double  d)
inline

§ matTrace() [2/2]

template<typename T1 >
double ug::matTrace ( const DenseMatrix< T1 > &  mat)
inline

§ MatTranspose()

template<typename X , typename Y , typename M >
void ug::MatTranspose ( MatrixOperator< M, X, Y > &  AT,
MatrixOperator< M, X, Y > &  A 
)

§ MatWriteDiagOnLayout()

template<typename TMatrix , typename TVector >
void ug::MatWriteDiagOnLayout ( TMatrix *  pMatrix,
const TVector *  pDiagVector,
const IndexLayout Layout 
)

writes diagonal of a matrix for interface indices

This function writes diagonal values of a matrix for all interface indices. No communication is performed.

Parameters
[out]pMatrixMatrix
[in]pDiagVectorVector with diagonal entries
[in]LayoutIndex Layout

References pcl::SingleLevelLayout< TInterface >::begin(), BlockRef(), pcl::SingleLevelLayout< TInterface >::end(), GetCols(), and PROFILE_FUNC_GROUP.

Referenced by MatAdditiveToConsistentOnDiag().

§ MaxAbsEigenvalue() [1/2]

template<typename T >
MathMatrix<1,1,T>::value_type ug::MaxAbsEigenvalue ( const MathMatrix< 1, 1, T > &  m)
inline

§ MaxAbsEigenvalue() [2/2]

template<typename T >
MathMatrix<2,2,T>::value_type ug::MaxAbsEigenvalue ( const MathMatrix< 2, 2, T > &  m)
inline

References UG_ASSERT.

§ MaxElementDiameter< Domain1d >()

template number ug::MaxElementDiameter< Domain1d > ( Domain1d domain,
int  level 
)

Referenced by MaxElementDiameter().

§ MaxElementDiameter< Domain2d >()

template number ug::MaxElementDiameter< Domain2d > ( Domain2d domain,
int  level 
)

Referenced by MaxElementDiameter().

§ MaxElementDiameter< Domain3d >()

template number ug::MaxElementDiameter< Domain3d > ( Domain3d domain,
int  level 
)

Referenced by MaxElementDiameter().

§ MaxError() [1/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

computes maximum error of a grid function on a subset

This function computes the maximum error of a GridFunction. To evaluate the exact solution on every point a functor must be passed.

Parameters
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctinterpolated grid function
[in]cmpsymbolic name of function component
[in]subsetssubsets (NULL = everywhere)
[in]timetime point
Returns
globalMaxError maximum norm of difference

References ug::SubsetGroup::add(), ug::LFEID::LAGRANGE, PST_CONSISTENT, RemoveLowerDimSubsets(), SameDimensionsInAllSubsets(), TokenizeString(), and UG_THROW.

Referenced by MaxError().

§ MaxError() [2/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References MaxError().

§ MaxError() [3/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References MaxError().

§ MaxError() [4/8]

template<typename TGridFunction >
number ug::MaxError ( SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

References MaxError().

§ MaxError() [5/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets,
number  time 
)

References dim, make_sp(), and MaxError().

§ MaxError() [6/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
number  time 
)

References MaxError().

§ MaxError() [7/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp,
const char *  subsets 
)

References MaxError().

§ MaxError() [8/8]

template<typename TGridFunction >
number ug::MaxError ( number  val,
SmartPtr< TGridFunction >  spGridFct,
const char *  cmp 
)

§ MaxErrorOnElements() [1/2]

template<typename TElem , typename TGridFunction >
void ug::MaxErrorOnElements ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si,
number  time 
)

This function computes maximum error of a grid function on an element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctinterpolated grid function
[in]fctsymbolic name of function component
[in]sisubset
[in]timetime point

References CollectCornerCoordinates(), dim, DoFRef(), ug::ReferenceMapping< TRefElem, TWorldDim >::local_to_global(), ug::LocalDoFSet::num_sh(), ug::DimLocalDoFSet< TDim >::position(), UG_THROW, and ug::ReferenceMapping< TRefElem, TWorldDim >::update().

§ MaxErrorOnElements() [2/2]

template<typename TGridFunction >
void ug::MaxErrorOnElements ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function computes maximum error of grid function on an element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctgrid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets
[in]timetime point

References dim, ug::SubsetGroup::dim(), DIM_SUBSET_EMPTY_GRID, ug::SubsetGroup::size(), UG_CATCH_THROW, and UG_THROW.

§ MaxErrorOnVertices()

template<typename TGridFunction >
void ug::MaxErrorOnVertices ( number globalMaxError,
SmartPtr< UserData< number, TGridFunction::dim > >  spInterpolFunction,
SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
number  time,
const SubsetGroup ssGrp 
)

This function computes max error of a grid function on a vertex loop. Thus, it can only be used if all degrees of freedom are located in the vertices only (e.g. P1 finite elements). In those cases it is faster than the element by element loop.

Parameters
[in]globalMaxErrorreference to global max error
[in]spInterpolFunctiondata providing exact solution
[out]spGridFctgrid function
[in]fctsymbolic name of function component
[in]ssGrpsubsets, where to compute max error
[in]timetime point

References DoFRef(), and ug::SubsetGroup::size().

§ MemSwap()

template<typename T >
void ug::MemSwap ( T &  a,
T &  b 
)

§ MergeGlobalLayout()

void ug::MergeGlobalLayout ( GlobalLayout globalLayout,
const std::map< int, int > &  merge 
)

§ MergeInterfaces() [1/2]

template<typename TLayout >
void ug::MergeInterfaces ( TLayout &  layout,
const std::vector< int >  pidSources,
int  pidAppendTo 
)

§ MergeInterfaces() [2/2]

template<typename TLayout >
void ug::MergeInterfaces ( TLayout &  layout,
const std::map< int, int >  merge 
)

§ MeshLayerBoundaries()

§ MeshLayers()

§ MightContainGhosts()

template<typename TElem >
bool ug::MightContainGhosts ( const GridLayoutMap layoutMap,
int  lvl 
)

§ MinAbsEigenvalue()

template<typename matrix_t >
matrix_t::value_type ug::MinAbsEigenvalue ( matrix_t &  m)
inline

References Inverse(), and MaxAbsEigenvalue().

§ MultiEdgeSplit()

template<class TVrtIter , class TAAPos >
void ug::MultiEdgeSplit ( Grid grid,
Edge edge,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos  aaPos 
)

Inserts the specified vertices on the given edge.

The method assumes that the specified vertices do lie on the specified edge. The specified vertices do not have to be sorted in any specific order, since the method will sort them automatically.

References CollectFaces(), ug::Grid::create(), EdgeOrientationMatches(), ElementDebugInfo(), ug::Grid::erase(), ug::Grid::get_element(), GetConnectedVertex(), ug::FaceDescriptor::set_vertex(), SpacialVertexSort(), Triangulate(), UG_COND_THROW, VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceDescriptor::vertex().

Referenced by ProjectVerticesToCloseEdges().

§ MultiEnergyProd()

template<typename matrix_type , typename vector_type , typename densematrix_type >
void ug::MultiEnergyProd ( matrix_type &  A,
SmartPtrVector< vector_type > &  px,
DenseMatrix< densematrix_type > &  rA,
size_t  n 
)

§ MultiScalProd()

template<typename vector_type , typename densematrix_type >
void ug::MultiScalProd ( vector_type &  px,
DenseMatrix< densematrix_type > &  rA,
size_t  n 
)

References PINVIT_PROFILE_FUNC, and UG_ASSERT.

§ MyCudaAlloc()

template<typename T >
T* ug::MyCudaAlloc ( size_t  N)

References CUDAError(), UG_DLOG, and UG_THROW.

§ NbrIsInSubset()

template<class TElem >
static bool ug::NbrIsInSubset ( ISubsetHandler sh,
typename Grid::traits< TElem >::secure_container &  nbrs,
int  si 
)
static

§ NonzeroString()

template<typename TStorage >
std::string ug::NonzeroString ( const DenseMatrix< TStorage > &  A,
const char *  brackets,
const char *  seperator,
int  base,
const char *  name 
)

§ NotVertical() [1/3]

static bool ug::NotVertical ( const vector1 ,
const vector1  
)
inlinestatic

§ NotVertical() [2/3]

static bool ug::NotVertical ( const vector2 from,
const vector2 to 
)
inlinestatic

References SMALL.

§ NotVertical() [3/3]

static bool ug::NotVertical ( const vector3 from,
const vector3 to 
)
inlinestatic

§ NumIndices()

§ ObtainSimpleGrid()

template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ug::ObtainSimpleGrid ( SimpleGrid sgOut,
Grid grid,
Vertex vrt1,
Vertex vrt2,
size_t  size,
TPosAcc &  aaPos,
TNormAcc &  aaNorm,
TIntAcc &  aaInt 
)

returns a neighbourhood of the edge defined by vrt1 and vrt2 in a SimpleGrid.

Uses Grid::mark(). Make sure that the queried sub-grid only contains triangles. vrt1 and vrt2 will be the first two vertices in the returned vertex-list. The triangles that contain both vrt1 and vrt2 are the first triangles in the triangle list. The vertices that are contained in those triangles are the next vertices in the vertex list (excluding vrt1 and vrt2).

You have to pass an accessor to the positions of the grids vertices (aaPos). Additionally you have to pass an accessor to an integer-attachment at the vertices. This attachment is only intended as a helper during the algorithm. You don't have to initialise it with any special values, nor are the values of this attachment cruical in any consecutive calls.

size determines the size of the neighbourhood. If size == 0 then only the triangles that contain the edge (vrt1, vrt2) are copied to sgOut. If size > 0 then each triangle that contains a vertex of the neighbourhood N(size - 1) is contained in N(size).

References ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::begin_marking(), CalculateTriangleNormals(), ug::SimpleGrid::clear(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::size(), ug::SimpleGrid::triangles, ug::FaceVertices::vertex(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

Referenced by TryCollapse(), and TrySwap().

§ ObtainSimpleGrid_CollapseEdge()

template<class TPosAcc , class TIntAcc , class TNormAcc >
bool ug::ObtainSimpleGrid_CollapseEdge ( SimpleGrid sgOut,
Grid grid,
Edge e,
size_t  size,
TPosAcc &  aaPos,
TNormAcc &  aaNorm,
TIntAcc &  aaInt 
)

returns a neighbourhood of the edge e after e has been collapsed.

This algorithm uses Grid::mark.

The new vertex which corresponds to the collapsed edge can be found at sgOut.vertices[0].

Please note that this method is capable of treating non-surface grids (i.e. grids where edges have more than two adjacent triangles).

Make sure that the neighbourhood of e only contains triangles.

Please note that the resulting grid is not suited for swap, split or collapse operations.

References ug::Grid::begin_marking(), CalculateCenter(), CalculateTriangleNormals(), ug::SimpleGrid::clear(), CollectNeighborhood(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ug::FaceVertices::num_vertices(), ug::SimpleGrid::triangles, VecAdd(), VecNormalize(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), ug::SimpleGrid::vertexNormals, and ug::SimpleGrid::vertices.

Referenced by TryCollapse().

§ OctReferenceMappingTest()

void ug::OctReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vCornerCoord2,
std::vector< number vCornerCoord3,
std::vector< number vCornerCoord4,
std::vector< number vCornerCoord5,
std::vector< number vGlobPos 
)

§ OnOffString()

const char* ug::OnOffString ( bool  b)
inline

§ operator&()

ParallelStorageType ug::operator & ( const ParallelStorageType a,
const ParallelStorageType b 
)
inline

§ operator*() [1/8]

template<typename T >
TE_VecScale<typename T::vector_type> ug::operator* ( double  alpha,
const TE_AlphaVec< T > &  r 
)

§ operator*() [2/8]

template<typename T >
TE_AlphaVec<typename T::vector_type> ug::operator* ( const TE_AlphaVec< T > &  l,
double  alpha 
)

§ operator*() [3/8]

template<typename T >
TE_VecAdd2<T> ug::operator* ( const TE_VecAdd2< T > &  t,
double  alpha 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

§ operator*() [4/8]

template<typename T >
TE_VecAdd2<T> ug::operator* ( double  alpha,
const TE_VecAdd2< T > &  t 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

§ operator*() [5/8]

template<typename T >
TE_VecAdd3<T> ug::operator* ( const TE_VecAdd3< T > &  t,
double  alpha 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd3< T >::a1, ug::TE_VecAdd3< T >::a2, ug::TE_VecAdd3< T >::a3, alpha, ug::TE_VecAdd3< T >::v1, ug::TE_VecAdd3< T >::v2, and ug::TE_VecAdd3< T >::v3.

§ operator*() [6/8]

template<typename T >
TE_VecAdd3<T> ug::operator* ( double  alpha,
const TE_VecAdd2< T > &  t 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, alpha, ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

§ operator*() [7/8]

§ operator*() [8/8]

template<typename value_type >
double ug::operator* ( const TRANSPOSED< Vector< value_type > > &  x,
const Vector< value_type > &  y 
)

§ operator+() [1/4]

template<typename L , typename R >
TE_VecAdd2<typename L::vector_type> ug::operator+ ( const TE_AlphaVec< L > &  l,
const TE_AlphaVec< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AlphaVec< T >::cast(), and ug::TE_AlphaVec< T >::scaling().

§ operator+() [2/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator+ ( const TE_VecAdd2< L > &  l,
const TE_AlphaVec< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_VecAdd2< T >::a1, ug::TE_VecAdd2< T >::a2, ug::TE_AlphaVec< T >::cast(), ug::TE_AlphaVec< T >::scaling(), ug::TE_VecAdd2< T >::v1, and ug::TE_VecAdd2< T >::v2.

§ operator+() [3/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator+ ( const TE_AlphaVec< R > &  r,
const TE_VecAdd2< L > &  l 
)

§ operator+() [4/4]

template<typename L , typename R >
AlphaMatVec_X_Expression<L, operation_add, R> ug::operator+ ( const TE_AMV_X< L > &  l,
const TE_AMV_X< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_add, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AMV_X< A >::cast().

§ operator++()

ReferenceObjectID ug::operator++ ( ReferenceObjectID roid,
int   
)
inline

§ operator-() [1/4]

template<typename L , typename R >
TE_VecAdd2<typename L::vector_type> ug::operator- ( const TE_AlphaVec< L > &  l,
const TE_AlphaVec< R > &  r 
)

§ operator-() [2/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator- ( const TE_VecAdd2< L > &  l,
const TE_AlphaVec< R > &  r 
)

§ operator-() [3/4]

template<typename L , typename R >
TE_VecAdd3<typename L::vector_type> ug::operator- ( const TE_AlphaVec< R > &  r,
const TE_VecAdd2< L > &  l 
)

§ operator-() [4/4]

template<typename L , typename R >
AlphaMatVec_X_Expression<L, operation_sub, R> ug::operator- ( const TE_AMV_X< L > &  l,
const TE_AMV_X< R > &  r 
)

create AlphaMatVec_X_Expression<L, operation_minus, R> by conjunction of TE_AMV_X<L> + TE_AMV_X<R>

References ug::TE_AMV_X< A >::cast().

§ operator<<() [1/36]

template<typename T >
std::string ug::operator<< ( std::string  a,
t 
)
inline

References ToString().

§ operator<<() [2/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const GridLevel v 
)

§ operator<<() [3/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const LFEID v 
)

§ operator<<() [4/36]

§ operator<<() [5/36]

template<>
std::string ug::operator<< ( std::string  a,
const char *  s 
)
inline

§ operator<<() [6/36]

template<>
std::string ug::operator<< ( std::string  a,
std::string  b 
)
inline

§ operator<<() [7/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
DiscPart  part 
)
inline

References EXPL, MASS, NONE, RHS, STIFF, and UG_THROW.

§ operator<<() [8/36]

§ operator<<() [9/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const AlgebraID ID 
)

§ operator<<() [10/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ParallelStorageType type 
)
inline

§ operator<<() [11/36]

§ operator<<() [12/36]

template<class vector_t >
std::ostream& ug::operator<< ( std::ostream &  out,
const AABox< vector_t > &  box 
)

§ operator<<() [13/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
ReferenceObjectID  type 
)
inline

§ operator<<() [14/36]

template<typename T , size_t n>
std::ostream& ug::operator<< ( std::ostream &  out,
const FixedArray1< T, n > &  arr 
)

§ operator<<() [15/36]

template<typename T >
std::ostream & ug::operator<< ( std::ostream &  out,
const DenseMatrixInverse< T > &  mat 
)

References ColMajor.

§ operator<<() [16/36]

template<typename TStorage >
std::ostream& ug::operator<< ( std::ostream &  out,
const DenseVector< TStorage > &  vec 
)

§ operator<<() [17/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const LocalDoF v 
)

writes to the output stream

References ug::LocalDoF::dim(), ug::LocalDoF::id(), and ug::LocalDoF::offset().

§ operator<<() [18/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const CommonLocalDoFSet v 
)

§ operator<<() [19/36]

template<typename T >
std::ostream& ug::operator<< ( std::ostream &  out,
const VariableArray1< T > &  arr 
)

§ operator<<() [20/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const LocalDoFSet v 
)

writes to the output stream

References ug::LocalDoFSet::num_dof(), NUM_REFERENCE_OBJECTS, and ug::LocalDoFSet::roid().

§ operator<<() [21/36]

template<int dim>
std::ostream & ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< dim > &  v 
)

writes to the output stream

§ operator<<() [22/36]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 0 > &  v 
)

§ operator<<() [23/36]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 1 > &  v 
)

§ operator<<() [24/36]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 2 > &  v 
)

§ operator<<() [25/36]

template std::ostream& ug::operator<< ( std::ostream &  out,
const DimLocalDoFSet< 3 > &  v 
)

§ operator<<() [26/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::FunctionIndexMapping map 
)
inline

§ operator<<() [27/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::FunctionGroup grp 
)
inline

§ operator<<() [28/36]

template<typename T , eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const ReservableArray2< T, T_ordering > &  arr 
)

§ operator<<() [29/36]

template<typename T , size_t rowsT, size_t colsT, eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const FixedArray2< T, rowsT, colsT, T_ordering > &  arr 
)

§ operator<<() [30/36]

template<int N>
std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::MultiIndex< N > &  v 
)

§ operator<<() [31/36]

std::ostream & ug::operator<< ( std::ostream &  out,
const QuadType v 
)

writes the Identifier to the output stream

References BEST, GAUSS, GAUSS_LEGENDRE, and NEWTON_COTES.

§ operator<<() [32/36]

template<typename T , eMatrixOrdering T_ordering>
std::ostream& ug::operator<< ( std::ostream &  out,
const VariableArray2< T, T_ordering > &  arr 
)

§ operator<<() [33/36]

template<typename TStorage >
std::ostream& ug::operator<< ( std::ostream &  out,
const DenseMatrix< TStorage > &  mat 
)

§ operator<<() [34/36]

template<typename TDomain , typename TAlgebra >
std::ostream& ug::operator<< ( std::ostream &  outStream,
const GridFunction< TDomain, TAlgebra > &  v 
)
inline

§ operator<<() [35/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::LocalMatrix mat 
)
inline

§ operator<<() [36/36]

std::ostream& ug::operator<< ( std::ostream &  outStream,
const ug::LocalVector vec 
)
inline

§ OrderCuthillMcKee() [1/2]

void ug::OrderCuthillMcKee ( DoFDistribution dofDistr,
bool  bReverse 
)
inline

§ OrderCuthillMcKee() [2/2]

template<typename TDomain >
void ug::OrderCuthillMcKee ( ApproximationSpace< TDomain > &  approxSpace,
bool  bReverse 
)

orders the all DofDistributions of the ApproximationSpace using Cuthill-McKee

References ug::IApproximationSpace::dof_distributions(), and OrderCuthillMcKee().

§ OrderDirectionYForDofDist()

§ OrderDirectionZForDofDist()

§ OrderLex()

template<typename TDomain >
void ug::OrderLex ( ApproximationSpace< TDomain > &  approxSpace,
const char *  order 
)

orders the all DofDistributions of the ApproximationSpace using lexicographic order

References ug::IApproximationSpace::dof_distributions(), and ug::ApproximationSpace< TDomain >::domain().

§ OrderLexForDofDist()

§ OrientationMatches()

bool ug::OrientationMatches ( const EdgeVertices e1,
const EdgeVertices e2 
)

§ OstreamShift()

template<typename T >
std::string ug::OstreamShift ( const T &  t)
inline

References ConfigShift(), and GetBytesSizeString().

Referenced by operator<<().

§ ParallelLayoutDebugSave()

static void ug::ParallelLayoutDebugSave ( MultiGrid mg)
static

§ PartitionDistributedDomain_LevelBased()

template<typename TDomain >
static bool ug::PartitionDistributedDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

§ PartitionDomain_Bisection()

template<typename TDomain >
static bool ug::PartitionDomain_Bisection ( TDomain &  domain,
PartitionMap partitionMap,
int  firstAxisToCut 
)
static

partitions a domain by repeatedly cutting it along the different axis

§ PartitionDomain_LevelBased() [1/2]

template<typename TDomain >
static bool ug::PartitionDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

Partitions a domain based on the elements of one level.

The elements are thereby weighted by the number of children they have. Partitioning is done using the metis graph library.

§ PartitionDomain_LevelBased() [2/2]

template<typename TDomain >
static bool ug::PartitionDomain_LevelBased ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  level 
)
static

§ PartitionDomain_MetisKWay() [1/4]

template<typename TDomain >
static bool ug::PartitionDomain_MetisKWay ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1 
)
static

partitions a domain by using graph-based partitioning by METIS

§ PartitionDomain_MetisKWay() [2/4]

template<typename TDomain >
static bool ug::PartitionDomain_MetisKWay ( TDomain &  domain,
PartitionMap partitionMap,
int  numPartitions,
size_t  baseLevel,
SmartPtr< PartitionWeighting weightFct 
)
static

partitions a domain by using graph-based partitioning by METIS

Weights can be chosen for borders between subsets in order to prevent them from being part of the border of the geometry distribution onto the available processors.

§ PartitionDomain_MetisKWay() [3/4]

§ PartitionDomain_MetisKWay() [4/4]

§ PartitionDomain_RegularGrid() [1/2]

template<typename TDomain >
static bool ug::PartitionDomain_RegularGrid ( TDomain &  domain,
PartitionMap partitionMap,
int  numCellsX,
int  numCellsY,
int  numCellsZ,
bool  surfaceOnly 
)
static

§ PartitionDomain_RegularGrid() [2/2]

template<typename TDomain >
static bool ug::PartitionDomain_RegularGrid ( TDomain &  domain,
PartitionMap partitionMap,
int  numCellsX,
int  numCellsY,
int  numCellsZ,
bool  surfaceOnly 
)
static

partitions a domain by sorting all elements into a regular grid

§ PartitionGrid_MetisKway()

template<class TGeomBaseObj >
bool ug::PartitionGrid_MetisKway ( SubsetHandler shPartitionOut,
Grid grid,
int  numParts 
)

Partitions the elements in the grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin(), ug::Grid::end(), LIB_GRID, PartitionGrid_MetisKway< Edge >(), PartitionGrid_MetisKway< Face >(), PartitionGrid_MetisKway< Volume >(), UG_DLOG, and UG_THROW.

§ PartitionGrid_MetisKway< Edge >()

template bool ug::PartitionGrid_MetisKway< Edge > ( SubsetHandler ,
Grid ,
int   
)

Referenced by PartitionGrid_MetisKway().

§ PartitionGrid_MetisKway< Face >()

template bool ug::PartitionGrid_MetisKway< Face > ( SubsetHandler ,
Grid ,
int   
)

Referenced by PartitionGrid_MetisKway().

§ PartitionGrid_MetisKway< Volume >()

template bool ug::PartitionGrid_MetisKway< Volume > ( SubsetHandler ,
Grid ,
int   
)

Referenced by PartitionGrid_MetisKway().

§ PartitionMultiGrid_MetisKway() [1/2]

template<class TGeomBaseObj >
bool ug::PartitionMultiGrid_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid grid,
int  numParts,
size_t  baseLevel = 0,
int  hWeight = 1,
int  vWeight = 1 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

All elements in baseLevel and higher levels will be partitioned. elements below baseLevel will stay where they are and are completely ignored during load balancing.

hWeight and vWeight determine, how important it is to keep horizontal and vertical neighbors on the same process as the element itself. The bigger hWeight, the more attention is spend to keep neighbors together. Both parameters have to be > 0. Default is 1.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::MultiGrid::begin(), ug::MultiGrid::end(), LIB_GRID, ug::MultiGrid::num_levels(), UG_DLOG, and UG_THROW.

§ PartitionMultiGrid_MetisKway() [2/2]

template<class TGeomBaseObj >
bool ug::PartitionMultiGrid_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid grid,
int  numParts,
size_t  baseLevel,
boost::function< int(TGeomBaseObj *, TGeomBaseObj *)> &  weightFct 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

All elements in baseLevel and higher levels will be partitioned. elements below baseLevel will stay where they are and are completely ignored during load balancing.

weightFct specifies a function that attributes special weights to edges on the dual graph.

Valid template arguments are Edge, Face, Volume and derived types.

References ug::GridSubsetHandler::assign_subset(), ug::MultiGrid::begin(), ug::MultiGrid::end(), ug::Grid::front(), LIB_GRID, ug::MultiGrid::num(), ug::MultiGrid::num_levels(), UG_ASSERT, UG_DLOG, and UG_THROW.

§ PartitionMultiGrid_MetisKway< Edge >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

§ PartitionMultiGrid_MetisKway< Edge >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Edge > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Edge *, Edge *)> &   
)

§ PartitionMultiGrid_MetisKway< Face >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

§ PartitionMultiGrid_MetisKway< Face >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Face > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Face *, Face *)> &   
)

§ PartitionMultiGrid_MetisKway< Volume >() [1/2]

template bool ug::PartitionMultiGrid_MetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
int  ,
int   
)

§ PartitionMultiGrid_MetisKway< Volume >() [2/2]

template bool ug::PartitionMultiGrid_MetisKway< Volume > ( SubsetHandler ,
MultiGrid ,
int  ,
size_t  ,
boost::function< int(Volume *, Volume *)> &   
)

§ PartitionMultiGridLevel_MetisKway()

template<class TGeomBaseObj >
bool ug::PartitionMultiGridLevel_MetisKway ( SubsetHandler shPartitionOut,
MultiGrid mg,
int  numParts,
size_t  level 
)

Partitions the elements in the multi-grid using the METIS library.

This method calls METIS_PartGraphKway. Note that METIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

Note that this method is best suited for partitions with more than 8 procs. For less than 8 procs metis features other, better suited methods.

The method performs load balancing for the elements in the given level. The elements are weighted according to the number of children each has. Child elements will then be recursively assigned to the partitions into which their parents have been assigned, starting from level+1. Elements below the specified level will be assigned to the local process id.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::attach_to(), ug::MultiGrid::begin(), ug::Grid::detach_from(), ug::MultiGrid::end(), ug::Grid::front(), ug::MultiGrid::get_child(), ug::MultiGrid::get_parent(), ug::ISubsetHandler::get_subset_index(), LIB_GRID, ug::MultiGrid::num(), ug::MultiGrid::num_children(), ug::MultiGrid::num_children_total(), ug::MultiGrid::num_levels(), pcl::ProcRank(), ug::MultiGrid::top_level(), UG_DLOG, UG_LOG, and UG_THROW.

§ PartitionMultiGridLevel_MetisKway< Edge >()

§ PartitionMultiGridLevel_MetisKway< Face >()

§ PartitionMultiGridLevel_MetisKway< Volume >()

§ PartitionMultiGridLevel_ParmetisKway()

template<class TGeomBaseObj >
bool ug::PartitionMultiGridLevel_ParmetisKway ( SubsetHandler shPartitionOut,
MultiGrid mg,
int  numParts,
size_t  level 
)

Partitions the elements in the multi-grid using the PARMETIS library.

This method calls METIS_PartGraphKway. Note that PARMETIS is an external library developed at Karypis Labs (http://glaros.dtc.umn.edu/gkhome/)

The method performs parallel load balancing for the elements in the given level. The elements are weighted according to the number of children each has. Child elements will then be recursively assigned to the partitions into which their parents have been assigned, starting from level+1. Elements below the specified level will be assigned to the local process id.

References ug::GridSubsetHandler::assign_subset(), pcl::InterfaceCommunicator< TLayout >::communicate(), pcl::ProcessCommunicator::create_sub_communicator(), ug::GridLayoutMap::get_layout(), ug::ISubsetHandler::get_subset_index(), ug::GridLayoutMap::has_layout(), INT_V_MASTER, INT_V_SLAVE, LIB_GRID, PartitionMultiGrid_MetisKway< Edge >(), PartitionMultiGrid_MetisKway< Face >(), PartitionMultiGrid_MetisKway< Volume >(), PartitionMultiGridLevel_MetisKway< Edge >(), PartitionMultiGridLevel_MetisKway< Face >(), PartitionMultiGridLevel_MetisKway< Volume >(), PartitionMultiGridLevel_ParmetisKway< Edge >(), PartitionMultiGridLevel_ParmetisKway< Face >(), PartitionMultiGridLevel_ParmetisKway< Volume >(), pcl::ProcRank(), pcl::InterfaceCommunicator< TLayout >::receive_data(), pcl::InterfaceCommunicator< TLayout >::send_data(), pcl::ProcessCommunicator::size(), UG_DLOG, and UG_THROW.

§ PartitionMultiGridLevel_ParmetisKway< Edge >()

§ PartitionMultiGridLevel_ParmetisKway< Face >()

§ PartitionMultiGridLevel_ParmetisKway< Volume >()

§ PathFromFilename()

string ug::PathFromFilename ( const string &  str)

§ PerformCollapses() [1/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::PerformCollapses ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
number  minEdgeLen,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
bool  adaptive = true 
)

§ PerformCollapses() [2/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static bool ug::PerformCollapses ( const AdjustEdgeLengthDesc desc,
Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt 
)
static

§ PerformRetetrahedralization()

§ PerformSplits() [1/2]

template<class TAAPosVRT , class TAANormVRT >
bool ug::PerformSplits ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
number  maxEdgeLen,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
bool  adaptive = true 
)

§ PerformSplits() [2/2]

template<class TAAPosVRT , class TAANormVRT >
static bool ug::PerformSplits ( const AdjustEdgeLengthDesc desc,
Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm 
)
static

§ PerformSwaps()

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::PerformSwaps ( Grid grid,
SubsetHandler shMarks,
EdgeSelector esel,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt 
)

§ PerformTetrahedralization()

§ PermuteIndicesInIndexLayout()

void ug::PermuteIndicesInIndexLayout ( IndexLayout layout,
const std::vector< size_t > &  vIndNew 
)

permutes an IndexLayout for the permutation of indices

This Function changes the indices in the layout according to a given permutation of the indices. (The order of the DoFs in the interfaces remains the same, but the DoFs are "renamed") The vector vIndNew must return the new index for each old index, i.e. newIndex = vIndNew[oldIndex].

Parameters
[in]vIndNewmapping for each index
Returns
success flag

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), and UG_ASSERT.

§ PluginLoaded()

bool ug::PluginLoaded ( const string &  name)

References find().

§ PointIsInsideQuadrilateral()

template<>
bool ug::PointIsInsideQuadrilateral ( const MathVector< 3 > &  v,
const MathVector< 3 > &  v0,
const MathVector< 3 > &  v1,
const MathVector< 3 > &  v2,
const MathVector< 3 > &  v3 
)
inline

References UG_THROW.

§ PointIsInsideTriangle()

template<>
bool ug::PointIsInsideTriangle ( const MathVector< 3 > &  v,
const MathVector< 3 > &  v0,
const MathVector< 3 > &  v1,
const MathVector< 3 > &  v2 
)
inline

References UG_THROW.

§ PointTriangleIntersection()

static int ug::PointTriangleIntersection ( const vector3 p,
const TRI t 
)
static

References CROSS, INSIDE, ug::TRI::m_P, MAX3, MIN3, OUTSIDE, SIGN3, and SUB.

Referenced by TriCubeIntersection().

§ post_assemble_loop()

§ PostProcessDistInfos()

template<class TElem >
static void ug::PostProcessDistInfos ( MultiGrid mg,
DistInfoSupplier distInfos 
)
static

DistInfos are post-processed and some values are adjusted (primarily missing vslaves-marks are added)

In some situations a copy of an element may be marked as vmaster but some associated copies are neither marked as vmaster or vslave. This would be invalid and we have to mark those copies as vslaves in those situations.

This occurs in situations where a low-dim element with copies on p1 and p2 (no v-interface) is distributed from p1 to a third process.

This method should be called after the distribution infos have been synchronized. Since it performs the exactly same actions on all processes for synchronized dist-infos, no further communication is required afterwards.

References ug::MultiGrid::begin(), ElementDebugInfo(), ug::MultiGrid::end(), ug::DistInfoSupplier::get(), ug::DistInfoSupplier::get_debug_info(), ug::TargetProcInfo::interfaceState, IS_DUMMY, IS_NORMAL, IS_VMASTER, IS_VSLAVE, UG_LOG, and UG_THROW.

§ prep_assemble_loop()

§ print_mark() [1/2]

static void ug::print_mark ( int &  posNow,
int  length 
)
inlinestatic

§ print_mark() [2/2]

static void ug::print_mark ( int &  posNow,
int  length 
)
inlinestatic

§ PrintCondUserDataValue()

template<class TData , int dim>
void ug::PrintCondUserDataValue ( const UserData< TData, dim, bool > &  ud,
const MathVector< dim > &  globIP,
number  time,
int  si 
)

References UG_LOG.

§ PrintDebugInfos()

void ug::PrintDebugInfos ( const vector< SweepLineVertex > &  vrts,
const list< SweepLineEdge > &  edges 
)

§ PrintDoFCount()

void ug::PrintDoFCount ( const vector< DoFCount > &  vDC,
const string &  sInfo,
const string &  sAlgebra,
const string &  sflags 
)

§ PrintElementEdgeRatios()

template<class TIterator , class TAAPos >
void ug::PrintElementEdgeRatios ( Grid grid,
TIterator  elemsBegin,
TIterator  elemsEnd,
TAAPos  aaPos 
)

§ PrintGlobalLayout()

void ug::PrintGlobalLayout ( const GlobalLayout globalLayout,
const char *  name 
)

§ PrintLayouts()

§ PrintLUA()

void ug::PrintLUA ( )

References UG_LOG.

Referenced by ug::bridge::RegisterBridge_Misc().

§ PrintMaple()

template<typename matrix_type >
void ug::PrintMaple ( const matrix_type &  mat,
const char *  name 
)

References UG_LOG.

§ PrintMatrix()

template<typename matrix_type >
void ug::PrintMatrix ( const matrix_type &  mat,
const char *  name 
)

References UG_LOG.

§ PrintQuadRule()

§ PrintSimpleGrid()

§ PrintStorageType()

template<typename tvector >
void ug::PrintStorageType ( const tvector &  v)

§ PrintUserDataValue()

template<class TData , int dim>
void ug::PrintUserDataValue ( const UserData< TData, dim > &  ud,
const MathVector< dim > &  globIP,
number  time,
int  si 
)

References UG_LOG.

§ PrintVector()

template<typename T >
void ug::PrintVector ( const T &  v,
std::string  desc = "" 
)

References UG_LOG.

§ ProjectHierarchyToLimitSubdivisionVolume()

void ug::ProjectHierarchyToLimitSubdivisionVolume ( MultiGrid mg)

Projection function for smooth subdivision (volumes+surface) refinement.

This function projects the vertices of all levels to their smooth limit positions determined by the subdivision volumes refinement.

Parameters
mgreference to MultiGrid

References aPosition, ug::MultiGrid::begin(), pcl::InterfaceCommunicator< TLayout >::communicate(), ug::Grid::distributed_grid_manager(), ug::MultiGrid::end(), pcl::InterfaceCommunicator< TLayout >::exchange_data(), ug::MultiGrid::get_parent(), ug::DistributedGridManager::grid_layout_map(), INT_V_MASTER, INT_V_SLAVE, ug::MultiGrid::num_levels(), PROFILE_FUNC_GROUP, ug::MultiGrid::top_level(), and UG_THROW.

Referenced by ug::bridge::Refinement::Functionality::Common().

§ ProjectVerticesToCloseEdges() [1/2]

template<class TAAPosVRT >
bool ug::ProjectVerticesToCloseEdges ( Grid grid,
GridObjectCollection  elems,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

Projects vertices in elems onto close edges in elems. Though this method can be used to remove degenerated triangles, it is not guaranteed, that no degenerated triangles will remain (indeed, new degenerated triangles may be introduced).

Referenced by ResolveTriangleIntersections().

§ ProjectVerticesToCloseEdges() [2/2]

template<class TAPos >
bool ug::ProjectVerticesToCloseEdges ( Grid grid,
GridObjectCollection  elems,
TAPos &  aPos,
number  snapThreshold 
)

Projects vertices in elems onto close edges in elems. Though this method can be used to remove degenerated triangles, it is not guaranteed, that no degenerated triangles will remain (indeed, new degenerated triangles may be introduced).

References ug::GridObjectCollection::begin(), EdgeContains(), ug::GridObjectCollection::end(), FindElementsInIntersectingNodes(), MultiEdgeSplit(), ug::GridObjectCollection::num(), ProjectPointToLine(), sq(), VecDistanceSq(), VecSet(), and ug::EdgeVertices::vertex().

§ ProjectVerticesToCloseFaces()

template<class TObjectCollection , class TAPos >
bool ug::ProjectVerticesToCloseFaces ( Grid grid,
TObjectCollection &  elems,
TAPos &  aPos,
number  snapThreshold 
)

Projects vertices in elems onto close faces in elems.

Projects vertices in elems onto close faces in elems. TObjectCollection has to fulfill the interface of a GridObjectCollection.

Note
: It is recommended to use a Grid ore a Selector as TObjectCollection, since a GridObjectCollection is static and it would thus not be possible to resolve all intersections.

References FaceContains(), FindElementsInIntersectingNodes(), ug::FaceVertices::num_vertices(), ResolveVertexFaceIntersection(), sq(), VecDistanceSq(), VecSet(), and ug::FaceVertices::vertex().

§ Prolongate()

§ ProlongateElemwise()

§ ProlongateP1()

§ QuadDiagonalIsValid()

bool ug::QuadDiagonalIsValid ( const vector3 c0,
const vector3 c1,
const vector3 c2,
const vector3 c3 
)
inline

returns true if the normals of the resulting triangles point into the same direction

the quad is always assumed to be split along the diagonal c0, c2

References CalculateTriangleNormalNoNormalize(), SMALL, and VecDot().

Referenced by ReplaceLowValenceVertices().

§ QualityGridGeneration() [1/3]

template<class TriIter , class TAAPos >
bool ug::QualityGridGeneration ( Grid grid,
TriIter  trisBegin,
TriIter  trisEnd,
TAAPos &  aaPos,
number  minAngle = 0,
Grid::edge_traits::callback  cbConstrainedEdge = ConsiderNone(),
int  maxSteps = -1 
)

§ QualityGridGeneration() [2/3]

template<class TAAPos >
bool ug::QualityGridGeneration ( Grid grid,
DelaunayInfo< TAAPos > &  info,
number  minAngle = 0,
int  maxSteps = -1 
)

Transforms the given triangle-set into a delaunay set.

Creates a delaunay triangulation. If a minAngle greater than 0 is specified, then additional vertices are introduced, if required to generate fulfill the min-angle-condition.

Make sure that init_marks was performed on the specified deaunay-info object. If the triangulation is not already delaunay, all interior edges should also be pushed to the candidates pool (can be done automatically in DelaunayInfo::init_marks)

References CalculateCenter(), CalculateNormal(), ug::DelaunayInfo< TAAPos >::classified_faces_left(), CollectAssociated(), ug::Grid::create(), CreatePolyChain(), deg_to_rad(), DelaunayDebugSave(), DelaunayLineLineIntersection(), DistancePointToLine(), EdgeContains(), EdgeLengthSq(), ug::DelaunayInfo< TAAPos >::enable_face_classification(), EnableDelaunayDebugSave(), ug::Grid::erase(), GetAssociatedFaces(), GetConnectedVertex(), ug::DelaunayInfo< TAAPos >::is_candidate(), ug::DelaunayInfo< TAAPos >::is_inner(), ug::DelaunayInfo< TAAPos >::is_segment(), MakeDelaunay(), ug::DelaunayInfo< TAAPos >::mark(), ug::Face::num_edges(), ug::FaceVertices::num_vertices(), ug::DelaunayInfo< TAAPos >::pop_classified_face(), ug::DelaunayInfo< TAAPos >::position_accessor(), ug::DelaunayInfo< TAAPos >::push_candidate(), QualityGridGeneration(), rad_to_deg(), ug::DelaunayInfo< TAAPos >::set_mark(), SMALL, SMALL_SQ, ug::vrl::split(), ug::DelaunayInfo< TAAPos >::start_candidate_recording(), ug::DelaunayInfo< TAAPos >::stop_candidate_recording(), TriangleCircumcenter(), TriangleFill_SweepLine(), UG_LOG, VecAdd(), VecAngle(), VecDistance(), VecDistanceSq(), VecLengthSq(), VecNormalize(), VecScale(), VecScaleAdd(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

Referenced by QualityGridGeneration().

§ QualityGridGeneration() [3/3]

template bool ug::QualityGridGeneration ( Grid ,
DelaunayInfo< Grid::VertexAttachmentAccessor< AVector3 > > &  ,
number  ,
int   
)

Referenced by QualityGridGeneration().

§ RayElementIntersection() [1/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector2 from,
const vector2 dir,
Edge e,
Grid g,
Grid::VertexAttachmentAccessor< AVector2 aaPos,
number  sml = SMALL 
)

2d ray-element intersection for edges

sminOut and smaxOut return the relative coordinates of the intersection with the edge regarding the ray-parameter form. sminOut and smaxOut usually return the same result. They should only be different if the ray lies in the same hyperplane as the given edge. Then they would ontain the point where the ray enters (sminOut) and leaves (smaxOut) the edge. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 2d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.
Note
The case in which the ray lies in the plane of an edge is not yet implemented correctly.
Todo:
if a ray lies in the plane of an edge, sminOut and smaxOut are currently not correctly computed (see note).

References RayLineIntersection2d(), and ug::EdgeVertices::vertex().

Referenced by ug::FVLineSourceOrSink< dim, TData >::corresponds_to(), ug::SingularSourcesAndSinks< dim, 1 >::get_contrib_of_scv(), and ug::lg_ntree_traits_base< 1, 2, elem_t, NTreeGridData< 2 > >::intersects_ray().

§ RayElementIntersection() [2/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector2 from,
const vector2 dir,
Face f,
Grid g,
Grid::VertexAttachmentAccessor< AVector2 aaPos,
number  sml = SMALL 
)

2d ray-element intersection for faces

If the method returns true, the point where the ray enters and leaves the face are returned in sminOut and smaxOut respectively. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 2d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.

References RayElementIntersectionImpl().

§ RayElementIntersection() [3/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Face f,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for faces

sminOut and smaxOut return the relative coordinates of the intersection with the face regarding the ray-parameter form. sminOut and smaxOut usually return the same result. They should only be different if the ray lies in the plane of the given face. Then they would contain the point where the ray enters (sminOut) and leaves (smaxOut) the face. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 3d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.
Note
The case in which the ray lies in the plane of a face is not yet implemented correctly.
Todo:
if a ray lies in the plane of a face, sminOut and smaxOut are currently not correctly computed (see note).

References ug::FaceVertices::num_vertices(), RayTriangleIntersection(), and ug::FaceVertices::vertex().

§ RayElementIntersection() [4/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Volume v,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for volumes

If the method returns true, the point where the ray enters and leaves the volume are returned in sminOut and smaxOut respectively. sminOut and smaxOut are relative coordinates regarding the ray's parameter form. To obtain a point in 3d use 'PointOnRay(from, dir, sminOut)' or 'PointOnRay(from, dir, smaxOut)'.

Returns
true if an intersection was found, false if not.

References RayElementIntersectionImpl().

§ RayElementIntersection() [5/5]

bool ug::RayElementIntersection ( number sminOut,
number smaxOut,
const vector3 from,
const vector3 dir,
Edge e,
Grid g,
Grid::VertexAttachmentAccessor< AVector3 aaPos,
number  sml = SMALL 
)

3d ray-element intersection for edges

Not implemented yet, always returns false

Referenced by RayElementIntersectionImpl().

§ RayElementIntersectionImpl()

template<class TElem , class vector_t >
static bool ug::RayElementIntersectionImpl ( number sminOut,
number smaxOut,
const vector_t &  from,
const vector_t &  dir,
TElem *  e,
Grid g,
Grid::VertexAttachmentAccessor< Attachment< vector_t > >  aaPos,
number  sml 
)
static

utility method for the full-dimensional RayElementIntersection implementation

References ug::Grid::associated_elements(), end_for, for_each_in_vec, and RayElementIntersection().

Referenced by RayElementIntersection().

§ RayElementIntersections()

template<class tree_t >
bool ug::RayElementIntersections ( std::vector< RayElemIntersectionRecord< typename tree_t::elem_t > > &  intersectionsOut,
const tree_t &  tree,
const typename tree_t::vector_t &  rayFrom,
const typename tree_t::vector_t &  rayDir,
const number  small = 1.e-12 
)

§ ReadFromFile()

template<typename T >
void ug::ReadFromFile ( T &  v,
std::string  filename 
)

§ ReadGridHeader()

§ ReadIndices()

static void ug::ReadIndices ( vector< int > &  vIndsOut,
char *  buffer,
const char *  delim,
bool  newTokBuff = true 
)
static

If you havn't already used strtok on the given buffer, pass true to newTokBuff (default == true).

Make sure that the buffer only contains index values!

Referenced by LoadGridFromART().

§ ReadSubsetIndicesFromStream()

template<class TElemIter >
static void ug::ReadSubsetIndicesFromStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISubsetHandler sh,
BinaryBuffer in 
)
static

§ ReadTetrahedrons()

static bool ug::ReadTetrahedrons ( Grid grid,
ifstream &  in,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
int &  lineCount 
)
static

References ug::Grid::create(), and split_parameters().

Referenced by LoadGridFromDUMP().

§ ReadTriangles()

static bool ug::ReadTriangles ( Grid grid,
ifstream &  in,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
int &  lineCount 
)
static

References ug::Grid::create(), and split_parameters().

Referenced by LoadGridFromDUMP().

§ ReadVector()

template<typename vector_type >
bool ug::ReadVector ( std::string  filename,
vector_type &  vec,
int  dim 
)

References PROGRESS_START, and PROGRESS_UPDATE.

Referenced by LoadVector().

§ ReceiveGlobalLayout()

§ ReceiveMatrix()

template<typename matrix_type >
void ug::ReceiveMatrix ( const matrix_type &  A,
matrix_type &  M,
IndexLayout verticalMasterLayout,
const std::vector< int > &  srcprocs,
ParallelNodes PN 
)

§ ReferenceElementCenter()

template<int dim>
MathVector<dim> ug::ReferenceElementCenter ( ReferenceObjectID  roid)
inline

returns the Center of a reference element at run-time

Referenced by ReferenceElementDimension().

§ ReferenceElementCenter< 1 >()

template<>
MathVector<1> ug::ReferenceElementCenter< 1 > ( ReferenceObjectID  roid)
inline

References ROID_EDGE, and UG_THROW.

§ ReferenceElementCenter< 2 >()

§ ReferenceElementCenter< 3 >()

§ ReferenceElementDimension()

§ Refine()

template<class TElemClass >
static bool ug::Refine ( std::vector< Volume *> &  vNewVolumesOut,
Vertex **  ppNewVertexOut,
Vertex **  newEdgeVertices,
Vertex **  newFaceVertices,
Vertex newVolumeVertex,
const Vertex prototypeVertex,
Vertex **  vrts,
int(*)(int *, int *, bool &, vector3 *, bool *)  funcRefine,
vector3 corners = NULL,
bool *  isSnapPoint = NULL 
)
static

§ release_mem()

void ug::release_mem ( void *  p)

§ RemoveDuplicates()

template<class TElemIter >
void ug::RemoveDuplicates ( Grid grid,
TElemIter  elemsBegin,
TElemIter  elemsEnd 
)

§ RemoveEmptyInterfaces()

template<class TGeomObj >
static void ug::RemoveEmptyInterfaces ( typename GridLayoutMap::Types< TGeomObj >::Map &  map)
static

§ RemoveInterface()

template<typename TLayout >
bool ug::RemoveInterface ( TLayout &  layout,
int  pid 
)

References find().

Referenced by MergeInterfaces(), and RemoveInterfaces().

§ RemoveInterfaces()

template<typename TLayout >
void ug::RemoveInterfaces ( TLayout &  layout,
std::vector< int >  group 
)

References RemoveInterface().

§ RemoveLowerDimSubsets()

void ug::RemoveLowerDimSubsets ( SubsetGroup subsetGroup)

Removes all subsets from the subset group that have a lower dimension than the highest dimension contained in the subset group.

Parameters
subsetGroupsubset group that is modified

References ug::SubsetGroup::dim(), ug::SubsetGroup::remove(), and ug::SubsetGroup::size().

Referenced by Integral(), IntegralNormalComponentOnManifoldSubsets(), IntegrateDiscFlux(), IntegrateSubsets(), Interpolate(), and MaxError().

§ ReorderCornersCCW() [1/2]

static bool ug::ReorderCornersCCW ( Vertex **  cornersOut,
Vertex **const  cornersIn,
int  numCorners,
int  firstCorner 
)
inlinestatic

helpful if a local vertex-order is required

cornersOut and cornersIn both have to be of size numCorners. After termination cornersOut will contain the vertices of cornersIn, starting from firstCorner, taking vertices modulo numCorners. If cornersOut == cornersIn, the method will fail! This is ok since the method is used locally and has been created for a special case.

Referenced by ug::CustomQuadrilateral< ConstrainedQuadrilateral, ConstrainedFace >::refine().

§ ReorderCornersCCW() [2/2]

static bool ug::ReorderCornersCCW ( Vertex **  cornersOut,
Vertex **const  cornersIn,
int  numCorners,
int  firstCorner 
)
inlinestatic

helpful if a local vertex-order is required

cornersOut and cornersIn both have to be of size numCorners. After termination cornersOut will contain the vertices of cornersIn, starting from firstCorner, taking vertices modulo numCorners. If cornersOut == cornersIn, the method will fail! This is ok since the method is used locally and has been created for a special case.

§ RepeatedEdgeExtrusion()

template<class TIterator >
bool ug::RepeatedEdgeExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

§ RepeatedFaceExtrusion()

template<class TIterator >
bool ug::RepeatedFaceExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

§ RepeatedVertexExtrusion()

template<class TIterator >
bool ug::RepeatedVertexExtrusion ( Grid grid,
TIterator  iterBegin,
TIterator  iterEnd,
int  numSteps,
const ug::vector3 stepDir 
)

References Extrude().

§ replace_chars()

string ug::replace_chars ( string &  str,
char  cToR,
char  cNew 
)

§ ReplaceAll()

string ug::ReplaceAll ( string  target,
const string &  oldstr,
const string &  newstr 
)

§ ReplaceByConstrained() [1/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Vertex v 
)
static

§ ReplaceByConstrained() [2/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Edge e 
)
static

§ ReplaceByConstrained() [3/3]

static void ug::ReplaceByConstrained ( MultiGrid mg,
Face f 
)
static

§ ReplaceByConstraining() [1/3]

static void ug::ReplaceByConstraining ( MultiGrid ,
Vertex  
)
static

§ ReplaceByConstraining() [2/3]

static void ug::ReplaceByConstraining ( MultiGrid mg,
Edge e 
)
static

§ ReplaceByConstraining() [3/3]

static void ug::ReplaceByConstraining ( MultiGrid mg,
Face f 
)
static

§ ReplaceByNormal() [1/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Vertex v 
)
static

§ ReplaceByNormal() [2/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Edge e 
)
static

§ ReplaceByNormal() [3/3]

static void ug::ReplaceByNormal ( MultiGrid mg,
Face f 
)
static

§ ReplaceIndicesInLayout()

void ug::ReplaceIndicesInLayout ( IndexLayout layout,
const std::vector< int > &  vMap 
)

replaces the indices in the layout based on a passed mapping

This function replaces the indices in the layout by new indices. The mapping between old and new indices is passed as newIndex = vMap[oldIndex]. The size of the new index set must be smaller or equal to the old index set. If the entry in the map is negative, the old index is removed from the layout.

References pcl::SingleLevelLayout< TInterface >::begin(), pcl::SingleLevelLayout< TInterface >::end(), pcl::SingleLevelLayout< TInterface >::erase(), and PROFILE_FUNC_GROUP.

§ ReplaceLowValenceVertices()

§ ReplaceValence3Vertices()

template<class TVrtIter , class TAAPos >
void ug::ReplaceValence3Vertices ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  maxSquaredHeightToBaseAreaRatio,
TAAPos  aaPos 
)

§ ResetSubsetIndices()

template<class TElem , class TAAInd >
static void ug::ResetSubsetIndices ( Grid pGrid,
TAAInd &  aaInd 
)
static

§ ResolveEdgeEdgeIntersection()

template<class TAAPosVRT >
Vertex * ug::ResolveEdgeEdgeIntersection ( Grid grid,
Edge e1,
Edge e2,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

This method does not resolve intersections between close, parallel edges or between degenerate edges. You can treat such cases with ReolveVertexEdgeIntersection.

References EdgeContains(), LineLineProjection(), MergeVertices(), VecDistanceSq(), VecScaleAdd(), and ug::EdgeVertices::vertex().

Referenced by IntersectCloseEdges().

§ ResolveEdgeFaceIntersection()

template<class TAAPosVRT >
bool ug::ResolveEdgeFaceIntersection ( Grid grid,
Edge e,
Face f,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volume, too.

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volume, too.

References ug::Grid::create(), ug::Grid::erase(), FaceContains(), MergeVertices(), ug::FaceVertices::num_vertices(), RayTriangleIntersection(), ug::Face::refine(), ug::Grid::register_element(), VecSubtract(), ug::EdgeVertices::vertex(), and ug::FaceVertices::vertex().

§ ResolveTriangleIntersections()

template<class TAPos >
bool ug::ResolveTriangleIntersections ( Grid grid,
TriangleIterator  trisBegin,
TriangleIterator  trisEnd,
number  snapThreshold,
TAPos &  aPos 
)

§ ResolveVertexEdgeIntersection()

template<class TAAPosVRT >
Vertex * ug::ResolveVertexEdgeIntersection ( Grid grid,
Vertex v,
Edge e,
TAAPosVRT &  aaPos,
number  snapThreshold 
)

§ ResolveVertexFaceIntersection()

template<class TAAPosVRT >
bool ug::ResolveVertexFaceIntersection ( Grid grid,
Vertex v,
Face f,
TAAPosVRT &  aaPos,
number  snapThreshold,
std::vector< Face *> *  pNewFacesOut 
)

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volumes, too.

No support for volumes in the current version.

Todo:
Instead of manually refining the face, an external function SplitFace should be used, which can take care of volumes, too.

References CalculateNormal(), ug::Grid::create(), ug::Face::edge_desc(), ug::Grid::erase(), FaceContains(), ug::Grid::get_edge(), ug::Grid::get_element(), ug::Grid::get_face(), ug::Face::num_edges(), ug::FaceVertices::num_vertices(), NumAssociatedFaces(), ProjectPointToLine(), ProjectPointToPlane(), RayTriangleIntersection(), ug::Face::refine(), ug::Grid::register_element(), ug::FaceDescriptor::set_vertex(), VecDistanceSq(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), and ug::FaceDescriptor::vertex().

Referenced by ProjectVerticesToCloseFaces().

§ Restrict()

§ RestrictElemwise()

§ RestrictP1()

§ ReturnValueToBool()

number ug::ReturnValueToBool ( lua_State *  L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a boolean, an error is thrown

References UG_THROW.

Referenced by ug::lua_traits< bool >::read().

§ ReturnValueToInteger()

int ug::ReturnValueToInteger ( lua_State *  L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a integer, an error is thrown

References UG_THROW.

Referenced by ug::lua_traits< int >::read().

§ ReturnValueToNumber()

number ug::ReturnValueToNumber ( lua_State *  L,
int  index 
)
inline

Helper to access a return value on the stack.

If the value can't be converted to a number, an error is thrown

References IsFiniteAndNotTooBig(), UG_COND_THROW, and UG_THROW.

Referenced by ug::LuaUserNumberNumberFunction::operator()(), ug::lua_traits< number >::read(), ug::lua_traits< ug::MathVector< dim > >::read(), and ug::lua_traits< MathMatrix< dim, dim > >::read().

§ rot()

static void ug::rot ( number  A[3][3],
const number  s,
const number  tau,
const int  i,
const int  j,
const int  k,
const int  l 
)
static

§ SameDimensionsInAllSubsets()

bool ug::SameDimensionsInAllSubsets ( const SubsetGroup subsetGroup)

Returns if dimension is the same in all subsets of the subset group

Parameters
subsetGroupsubset group that is checked
Returns
true if dimension is the same in all subsets, else false

References ug::SubsetGroup::dim(), and ug::SubsetGroup::size().

Referenced by Integral(), IntegralNormalComponentOnManifoldSubsets(), IntegrateDiscFlux(), IntegrateSubsets(), Interpolate(), and MaxError().

§ SaveCoarsenMarksToFile()

§ SaveDomain< Domain1d >()

template void ug::SaveDomain< Domain1d > ( Domain1d domain,
const char *  filename 
)

Referenced by MaxElementDiameter().

§ SaveDomain< Domain2d >()

template void ug::SaveDomain< Domain2d > ( Domain2d domain,
const char *  filename 
)

Referenced by MaxElementDiameter().

§ SaveDomain< Domain3d >()

template void ug::SaveDomain< Domain3d > ( Domain3d domain,
const char *  filename 
)

Referenced by MaxElementDiameter().

§ SaveGrid()

template<class TAPos >
static bool ug::SaveGrid ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPos &  aPos 
)
static

§ SaveGrid3d() [1/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition1 aPos 
)
static

§ SaveGrid3d() [2/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition2 aPos 
)
static

§ SaveGrid3d() [3/3]

static bool ug::SaveGrid3d ( Grid grid,
ISubsetHandler psh,
const char *  filename,
APosition3 aPos 
)
static

References SaveGrid3d_IMPL().

Referenced by SaveGrid().

§ SaveGrid3d_IMPL()

static bool ug::SaveGrid3d_IMPL ( Grid grid,
ISubsetHandler pSH,
const char *  filename,
AVector3 aPos 
)
static

§ SaveGridHierarchyTransformed() [1/2]

bool ug::SaveGridHierarchyTransformed ( MultiGrid mg,
ISubsetHandler sh,
const char *  filename,
number  offset 
)

§ SaveGridHierarchyTransformed() [2/2]

bool ug::SaveGridHierarchyTransformed ( MultiGrid mg,
const char *  filename,
number  offset 
)

§ SaveGridLevel()

template<class TAPos >
bool ug::SaveGridLevel ( MultiGrid srcMG,
ISubsetHandler srcSH,
int  lvl,
const char *  filename,
TAPos  aPos 
)

Saves a grid level to a file.

Extracts a specified level from a given MultiGrid with a given SubsetHandler and saves it to a file. Position data is read from aPos.

References ug::Grid::attach_to_vertices(), CopyGridLevel(), and SaveGridToFile().

Referenced by SaveGridLevelToFile().

§ SaveGridLevelToFile()

bool ug::SaveGridLevelToFile ( MultiGrid srcMG,
ISubsetHandler srcSH,
int  lvl,
const char *  filename 
)

Saves a grid level to a file.

Extracts a specified level from a given MultiGrid with a given SubsetHandler and saves it to a file. Position data is read from MultiGrid.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), LoadGridFromFile(), SaveGridLevel(), and SaveGridToFile().

Referenced by ug::bridge::RegisterGridBridge_FileIO().

§ SaveGridToART()

§ SaveGridToELE()

§ SaveGridToFile() [1/12]

template<class TAPos >
UG_API bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos 
)

§ SaveGridToFile() [2/12]

template<class TAPos >
UG_API bool ug::SaveGridToFile ( Grid grid,
const char *  filename,
TAPos &  aPos 
)

Saves a grid to a file. Position data is read from the specified attachment.

Make sure that the given position attachment is either of type AVector1, AVector2 or AVector3.

References SaveGrid().

§ SaveGridToFile() [3/12]

template<class TAPos >
bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPos &  aPos 
)

§ SaveGridToFile() [4/12]

template<class TAPos >
bool ug::SaveGridToFile ( Grid grid,
const char *  filename,
TAPos &  aPos 
)

References SaveGrid().

§ SaveGridToFile() [5/12]

UG_API bool ug::SaveGridToFile ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Saves a grid to a file. Position data is read from aPosition.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and SaveGrid().

§ SaveGridToFile() [6/12]

UG_API bool ug::SaveGridToFile ( Grid grid,
const char *  filename 
)

Saves a grid to a file. Position data is read from aPosition.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and SaveGrid().

§ SaveGridToFile() [7/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector1  
)

§ SaveGridToFile() [8/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector2  
)

§ SaveGridToFile() [9/12]

template bool ug::SaveGridToFile ( Grid ,
ISubsetHandler ,
const char *  ,
AVector3  
)

§ SaveGridToFile() [10/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector1  
)

§ SaveGridToFile() [11/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector2  
)

§ SaveGridToFile() [12/12]

template bool ug::SaveGridToFile ( Grid ,
const char *  ,
AVector3  
)

§ SaveGridToLGB()

bool ug::SaveGridToLGB ( Grid grid,
const char *  filename,
ISubsetHandler **  ppSH,
int  numSHs,
APosition  aPos = aPosition 
)

Saves a grid to LibGridBinary-format. Awaits a list of subset-handler-pointers and the number of subset-handlers that shall be written.

References ug::BinaryBuffer::buffer(), ug::Grid::has_vertex_attachment(), LGBC_POS3D, LGBC_SUBSET_HANDLER, SerializeGridElements(), SerializeSubsetHandler(), ug::BinaryBuffer::write(), and ug::BinaryBuffer::write_pos().

Referenced by SaveGrid3d_IMPL().

§ SaveGridToNCDF()

§ SaveGridToOBJ()

§ SaveGridToSTL()

§ SaveGridToTXT()

§ SaveGridToUGX() [1/2]

bool ug::SaveGridToUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename 
)

Writes a grid to a ugx file.

Before writing a grid to file, this method searches for the attached standard position attachment with the highest dimension. This will be used as position-attachment in a call to the overloaded version of SaveGridToUGX.

References aPosition, aPosition1, aPosition2, ug::Grid::has_vertex_attachment(), and UG_LOG.

Referenced by SaveGrid().

§ SaveGridToUGX() [2/2]

template<class TAPosition >
bool ug::SaveGridToUGX ( Grid grid,
ISubsetHandler sh,
const char *  filename,
TAPosition &  aPos 
)

Writes a grid to an ugx file. internally uses GridWriterUGX.

The position attachment can be specified. Since the type of the position attachment is a template parameter, MathVector attachments of any dimension are supported. Especially ug::aPosition, ug::aPostion2 and ug::aPosition1.

References ug::GridWriterUGX::add_grid(), ug::GridWriterUGX::add_subset_handler(), and ug::GridWriterUGX::write_to_file().

§ SaveGridToVTU()

template<class TAPosition >
bool ug::SaveGridToVTU ( Grid grid,
ISubsetHandler psh,
const char *  filename,
TAPosition &  aPos 
)

Writes a grid to a vtu (vtk unstructured mesh) file.

References ug::GridWriterVTU::finish(), ug::GridWriterVTU::new_piece(), ug::GridWriterVTU::out_stream(), and ug::GridWriterVTU::set_stream().

Referenced by SaveGrid().

§ SaveMatrixForConnectionViewer()

template<typename TGridFunction >
void ug::SaveMatrixForConnectionViewer ( TGridFunction &  u,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

§ SaveMatrixToMTX()

void ug::SaveMatrixToMTX ( const char *  filename,
MatrixOperator< CPUAlgebra::matrix_type, CPUAlgebra::vector_type > &  A,
std::string  comment = "%Generated with ug4." 
)
inline

Save the assembled matrix of a matrix operator to MatrixMarket format.

Parameters
[in]filenamename of the file; must end on '.mtx'
[in]Amatrix operator of with CPUAlgebra matrix
[in]commentoptional comment for the header of the MTX file
Note
Until now only CPUAlgebra matrices are supported.

References ug::MatrixIO::EXISTING, FileExists(), FileTypeIs(), ug::MatrixOperator< M, X, Y >::get_matrix(), ug::MatrixIO::NEW, PROFILE_FUNC_GROUP, UG_THROW, and ug::MatrixIOMtx::write_from().

Referenced by ug::bridge::Output::Functionality::Common().

§ SaveParallelGridLayout()

§ SavePartitionMapToFile()

template<class TAPos >
bool ug::SavePartitionMapToFile ( PartitionMap pm,
const char *  filename,
TAPos &  aPos 
)

Save the partition map to a file.

The resulting file will contain the grid on which the partition-map operates, together with subsets, each representing the process on which the subset will be sent.

Todo:
currently only the .ugx format is supported.

References ug::GridSubsetHandler::assign_subset(), ug::GridSubsetHandler::begin(), ug::GridSubsetHandler::end(), ug::PartitionMap::get_partition_handler(), ug::PartitionMap::get_target_proc(), ug::ISubsetHandler::grid(), ug::ISubsetHandler::num_subsets(), SaveGridToFile(), and UG_LOG.

Referenced by SavePartitionMap().

§ SaveSurfaceViewTransformed()

bool ug::SaveSurfaceViewTransformed ( MultiGrid mg,
const SurfaceView sv,
const char *  filename,
number  offset = 0.1 
)

§ SaveToFile()

template<typename T >
void ug::SaveToFile ( const T &  v,
std::string  filename 
)

§ SaveVectorCSV()

template<typename TGridFunction >
void ug::SaveVectorCSV ( TGridFunction &  b,
const char *  filename 
)

References PROFILE_FUNC, and WriteVectorCSV().

§ SaveVectorDiffForConnectionViewer() [1/2]

template<typename TGridFunction >
void ug::SaveVectorDiffForConnectionViewer ( TGridFunction &  b,
TGridFunction &  bCompare,
const char *  filename 
)

§ SaveVectorDiffForConnectionViewer() [2/2]

template<typename TGridFunction >
void ug::SaveVectorDiffForConnectionViewer ( TGridFunction &  u,
TGridFunction &  compareVec,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

§ SaveVectorForConnectionViewer() [1/2]

template<typename TGridFunction >
void ug::SaveVectorForConnectionViewer ( TGridFunction &  b,
const char *  filename 
)

§ SaveVectorForConnectionViewer() [2/2]

template<typename TGridFunction >
void ug::SaveVectorForConnectionViewer ( TGridFunction &  u,
MatrixOperator< typename TGridFunction::algebra_type::matrix_type, typename TGridFunction::vector_type > &  A,
const char *  filename 
)

§ scientificStr()

std::string ug::scientificStr ( double  d,
size_t  width 
)

Referenced by cutString(), and HistogrammString().

§ SCVFofSCVRayIntersection()

template<int TDim, int TWorldDim>
bool ug::SCVFofSCVRayIntersection ( size_t &  sideOut,
number bc,
MathVector< TWorldDim > &  GlobalIntersectionPointOut,
MathVector< TDim > &  LocalIntersectionPoint,
const MathVector< TWorldDim > &  Root,
const MathVector< TWorldDim > &  Direction,
bool  bPositiv,
const MathVector< TWorldDim > *  vCornerCoords 
)

This function computes if another scvf of a scv is intersected by a Ray given in Parameter form by 'Root + c * Direction'. The intersection is choose to be at positive parameter if bPositiv == true, else the intersection at negative parameter is choosen. Global and local coordinates of the intersection points are returned as well as the local number of the side of the scv that matches the intersection.

Parameters
[in]RootPoint of Ray
[in]DirectionDirection of Ray
[in]bPositivFlag, whether to search in positiv of negative direction
[in]vCornerCoordsVector of corner coordinates
[out]sideOutside of intersection
[out]bcline parameter in [0,1] indicating position of intersection point on scvf in direction center to edge
[out]GlobalIntersectionPointOutIntersection Point (global)
[out]LocalIntersectionPointIntersection Point (local)
Returns
true if intersected with another scvf of the scv, false else

References ug::SCVFofSCVRayIntersectionWrapper< TDim, TWorldDim >::apply(), UG_ASSERT, and VecTwoNorm().

§ SelectAssociatedConstrainedElements()

§ SelectAssociatedGridObjects< MGSelector >()

§ SelectAssociatedGridObjects< Selector >()

§ SelectAssociatedSides()

template<class TElem >
static void ug::SelectAssociatedSides ( MGSelector msel,
TElem *  e,
ISelector::status_t  status = ISelector::SELECTED 
)
static

§ SelectChildrenOfSelectedShadowRimEdges()

§ SelectChildrenOfSelectedShadowRimFaces()

§ SelectChildrenOfSelectedShadowVertices()

static void ug::SelectChildrenOfSelectedShadowVertices ( MGSelector msel,
ISelector::status_t  status = ISelector::SELECTED 
)
static

Recursively selects all children of selected vertices.

This method is required, since if a distributed vertex has a child which is not connected to other distributed elements, then the child wouldn't be selected. Note that for edges and faces the methods SelectAssociatedConstrainedElements takes care of this. (This is only true if there is no anisotropic refinement!) Children of pure vertical masters won't be selected, since those mustn't have children.

References ug::MGSelector::begin(), ug::MGSelector::end(), GDIST_PROFILE_FUNC, ug::ISelector::get_selection_status(), ug::DistributedGridManager::is_ghost(), IS_VMASTER, LG_DIST, ug::MGSelector::multi_grid(), ug::MGSelector::num_levels(), ug::ISelector::select(), ug::PointerConstArray< TPtr >::size(), UG_ASSERT, and UG_DLOG.

Referenced by SelectElementsForTargetPartition().

§ SelectElementsForTargetPartition()

static void ug::SelectElementsForTargetPartition ( MGSelector msel,
SubsetHandler shPartition,
int  partitionIndex,
bool  partitionForLocalProc,
bool  createVerticalInterfaces 
)
static

§ SelectInnerSelectionEdges< MGSelector >()

§ SelectInnerSelectionEdges< Selector >()

§ SelectInnerSelectionFaces< MGSelector >()

§ SelectInnerSelectionFaces< Selector >()

§ SelectInnerSelectionVertices< MGSelector >()

§ SelectInnerSelectionVertices< Selector >()

§ SelectionFill< Edge >()

Referenced by SelectionFill().

§ SelectionFill< Face >()

Referenced by SelectionFill().

§ SelectionFill< Volume >()

Referenced by SelectionFill().

§ SelectKinkVertices() [1/2]

template<class TVrtIter , class TAAPos >
void ug::SelectKinkVertices ( Grid grid,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  thresholdAngle,
bool  selectDarts,
TAAPos  aaPos,
Grid::edge_traits::callback  cbConsiderEdge = ConsiderAll() 
)

§ SelectKinkVertices() [2/2]

template<class TVrtIter , class TAAPos >
void ug::SelectKinkVertices ( Selector sel,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
number  thresholdAngle,
bool  selectDarts,
TAAPos  aaPos,
Grid::edge_traits::callback  cbConsiderEdge 
)

§ SelectNonShadowsAdjacentToShadowsOnLevel()

void ug::SelectNonShadowsAdjacentToShadowsOnLevel ( BoolMarker sel,
const SurfaceView surfView,
int  level 
)

§ SelectParents()

template<class TIterator >
static void ug::SelectParents ( MultiGrid mg,
MGSelector msel,
TIterator  iterBegin,
TIterator  iterEnd 
)
static

helper for SelectAssociatedGenealogy.

References ug::MultiGrid::get_parent(), and ug::ISelector::select().

Referenced by SelectAssociatedGenealogy().

§ SelectSelectedRootElementsAsVSlaves()

template<class TElem >
static void ug::SelectSelectedRootElementsAsVSlaves ( MGSelector msel)
static

§ SelectUnselectedRootElementsAsVMasters()

template<class TElem >
static void ug::SelectUnselectedRootElementsAsVMasters ( MGSelector msel)
static

§ SendGlobalLayout()

§ SendMatrix()

§ Serialize() [1/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const IndexLayout::Interface interface 
)

References Serialize().

§ Serialize() [2/9]

§ Serialize() [3/9]

template<typename T , class TOStream >
void ug::Serialize ( TOStream &  buf,
const ParallelVector< T > &  v 
)

Serialize for ParallelVector<T>

References ug::ParallelVector< TVector >::get_storage_mask().

Referenced by AddConnectionsBetweenSlaves(), pcl::ProcessCommunicator::broadcast(), ug::IDomain< ug::MultiGrid, ug::MultiGridSubsetHandler >::broadcast_refinement_projector(), BroadcastGrid(), ug::ComPol_CopyAttachment< TLayout, TAttachment >::collect(), ug::ComPol_GatherVecAttachment< TLayout, TAttachment >::collect(), ug::CommunicationScheme< ConsistencyCheckClass< TVec, TValue >, TValue >::collect(), ug::ComPol_VecCopy< TVector >::collect(), ug::CommunicationScheme< TDerived, bool >::collect(), ug::ComPol_SynchronizeDistInfos< TLayout >::collect(), ug::ComPol_VecScaleCopy< TVector >::collect(), ug::ComPol_AttachmentReduce< TLayout, TAttachment >::collect(), ug::ComPol_VecAdd< TVector >::collect(), ug::ComPol_VecScaleAdd< TVector >::collect(), ug::ComPol_VecAddSetZero< TVector >::collect(), ug::ComPol_CheckDistributedParentStates< TLayout >::collect(), ug::ComPol_VecSubtract< TVector >::collect(), ug::ComPol_NewConstrainedVerticals< TLayout >::collect(), ug::ComPol_CheckConsistency< TVector >::collect(), ug::ComPol_VecSubtractOnlyOneSlave< TVector >::collect(), ug::ComPol_MatDistributeDiag< TAlgebra >::collect(), ug::ComPol_MatAddRowsOverlap0< TMatrix >::collect(), ug::ComPol_MatAddSetZeroInnerInterfaceCouplings< TMatrix >::collect(), Deserialize(), GetFileLinesParallel(), ug::NewLayoutCreator::issue(), ug::ParallelNodes::issue(), ug::RowSendingScheme< matrix_type >::issue_send(), pcl::ParallelReadFile(), ReceiveOnInterfaces(), SaveToFile(), SendMatrix(), Serialize(), SerializeGlobalLayout(), SerializeInterface(), SerializeLayout(), SerializeMatrix(), SerializeMultiGridElements(), SerializeParallelData(), SerializeRow(), SerializeSubsetHandler(), SerializeUniquePart(), pcl::TestSizeOfInterfacesInLayoutsMatch(), ug::IDomain< ug::MultiGrid, ug::MultiGridSubsetHandler >::update_subset_infos(), ug::GeomObjAttachmentSerializer< TGeomObj, TAttachment >::write_data(), ug::SubsetHandlerSerializer::write_data(), and ug::SubsetHandlerSerializer::write_info().

§ Serialize() [4/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const pcl::InterfaceCommunicator< IndexLayout > &  ic 
)

§ Serialize() [5/9]

template<size_t n>
void ug::Serialize ( std::ostream &  buff,
const DenseVector< FixedArray1< number, n > > &  vec 
)
inline

§ Serialize() [6/9]

template<class TOStream >
void ug::Serialize ( TOStream &  buf,
const pcl::ProcessCommunicator ic 
)

§ Serialize() [7/9]

template<typename T >
void ug::Serialize ( std::ostream &  buff,
const DenseVector< VariableArray1< T > > &  vec 
)
inline

§ Serialize() [8/9]

template<typename TValueType , class TOStream >
void ug::Serialize ( TOStream &  buf,
const Vector< TValueType > &  v 
)

§ Serialize() [9/9]

template<typename T >
void ug::Serialize ( std::ostream &  buff,
const DenseMatrix< VariableArray2< T > > &  mat 
)
inline

References BlockSerialize().

§ SerializeGlobalLayout()

void ug::SerializeGlobalLayout ( BinaryBuffer stream,
const GlobalLayout globalLayout 
)

§ SerializeInterface()

§ SerializeLayout()

template<typename TLocalToGlobal >
void ug::SerializeLayout ( BinaryBuffer stream,
const IndexLayout layout,
const TLocalToGlobal &  localToGlobal 
)

§ SerializeParallelData()

template<typename T , class TOStream >
void ug::SerializeParallelData ( TOStream &  buf,
T &  t 
)

References Serialize().

§ SerializerGetLastID()

size_t ug::SerializerGetLastID ( )

§ SerializeRow()

template<typename matrix_type >
void ug::SerializeRow ( BinaryBuffer stream,
const matrix_type &  mat,
size_t  localRowIndex,
ParallelNodes PN 
)

§ SerializeUniquePart() [1/2]

template<typename T , class TOStream >
void ug::SerializeUniquePart ( TOStream &  buf,
const ParallelMatrix< T > &  A 
)

§ SerializeUniquePart() [2/2]

template<typename TValueType , class TOStream >
void ug::SerializeUniquePart ( TOStream &  buf,
const ParallelVector< TValueType > &  v 
)

§ SetBoundaryRefinementRule()

void ug::SetBoundaryRefinementRule ( GlobalBoundaryRefinementRule  refRule)

§ SetDirichletRow()

template<typename TMatrix >
void ug::SetDirichletRow ( TMatrix &  mat,
const DoFIndex ind 
)

References SetDirichletRow().

§ SetFrequency()

static void ug::SetFrequency ( const std::string &  csvFile)
static

§ SetInterpolation()

template<typename TMatrix >
void ug::SetInterpolation ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex,
bool  assembleLinearProblem = true 
)

§ SetLagrangeEdgeLocalDoFs()

void ug::SetLagrangeEdgeLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

§ SetLagrangeEdgeMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeEdgeMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

References dim, UG_ASSERT, and VecScaleAdd().

Referenced by SetLagrangeMultiIndex().

§ SetLagrangeFaceLocalDoFs()

void ug::SetLagrangeFaceLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

§ SetLagrangeFaceMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeFaceMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

§ SetLagrangeLocalDoFs()

§ SetLagrangeMultiIndex()

§ SetLagrangeVertexLocalDoFs()

void ug::SetLagrangeVertexLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

§ SetLagrangeVertexMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeVertexMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

References dim, and UG_ASSERT.

Referenced by SetLagrangeMultiIndex().

§ SetLagrangeVolumeLocalDoFs()

void ug::SetLagrangeVolumeLocalDoFs ( std::vector< LocalDoF > &  vLocalDoF,
const ReferenceElement rRef,
const size_t  p 
)

§ SetLagrangeVolumeMultiIndex()

template<typename TRefElem >
void ug::SetLagrangeVolumeMultiIndex ( MathVector< TRefElem::dim, int > *  vMultiIndex,
const TRefElem &  rRef,
size_t  p,
size_t &  index 
)

§ SetLocalMatrix() [1/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::SetLocalMatrix ( TGlobalMatrix &  mat,
const TLocalMatrix &  localMat 
)
inline

§ SetLocalMatrix() [2/2]

template<typename TGlobalMatrix , typename TLocalMatrix >
bool ug::SetLocalMatrix ( TGlobalMatrix &  mat,
TLocalMatrix &  localMat,
const size_t *  rowIndices,
const size_t *  colIndices 
)
inline

References AddLocalMatrix().

§ SetMatrixAsPermutation()

template<typename TMatrix >
static void ug::SetMatrixAsPermutation ( TMatrix &  PA,
const TMatrix &  A,
std::vector< size_t > &  perm 
)
static

Function to return a permutation of a matrix

Parameters
[out]PAthe permuted matrix PA(perm[r], perm[c]) = A(r, c)
[in]Athe input matrix
[in]permarray mapping i -> perm[i]

References PROFILE_FUNC_GROUP.

Referenced by ug::ILUTPreconditioner< ug::CPUAlgebra >::calc_cuthill_mckee(), and ug::ILU< TAlgebra >::calc_cuthill_mckee().

§ SetParallelData()

template<typename T >
void ug::SetParallelData ( T &  t,
IndexLayout masterLayout,
IndexLayout slaveLayout,
pcl::InterfaceCommunicator< IndexLayout > &  ic,
pcl::ProcessCommunicator pc 
)

§ SetRootPath()

UG_API void ug::SetRootPath ( const std::string &  strRoot)

Initializes the paths of ug::PathProvider.

init app, script and data paths for a given root path

Initializes the following paths in ug::PathProvider relative to passed root path

  • ROOT_PATH
  • BIN_PATH
  • SCRIPT_PATH
  • DATA_PATH
  • GRID_PATH
  • PLUGIN_PATH

References APPS_PATH, BIN_PATH, GetPathSeparator(), PLUGIN_PATH, PROFILE_FUNC, ROOT_PATH, SCRIPT_PATH, and ug::PathProvider::set_path().

Referenced by ug::bridge::RegisterBridge_Util().

§ SetRow()

template<typename TMatrix >
void ug::SetRow ( TMatrix &  mat,
const DoFIndex ind,
number  val = 0.0 
)

References SetRow().

§ SetShinyCallLoggingMaxFrequency()

static void ug::SetShinyCallLoggingMaxFrequency ( int  maxFreq)
static

§ SetSize() [1/6]

template<typename T >
void ug::SetSize ( T &  t,
size_t  a,
size_t  b 
)
inline

Referenced by BlockRef().

§ SetSize() [2/6]

template<typename T >
void ug::SetSize ( T &  t,
size_t  a 
)
inline

§ SetSize() [3/6]

template<>
void ug::SetSize ( number d,
size_t  a 
)
inline

References UG_ASSERT.

§ SetSize() [4/6]

template<>
void ug::SetSize ( number d,
size_t  a,
size_t  b 
)
inline

References UG_ASSERT.

§ SetSize() [5/6]

template<typename T >
void ug::SetSize ( DenseMatrix< T > &  t,
size_t  a,
size_t  b 
)
inline

§ SetSize() [6/6]

template<typename T >
void ug::SetSize ( DenseVector< T > &  t,
size_t  a 
)
inline

§ SetSmoothSubdivisionVolumesBoundaryRefinementRule()

void ug::SetSmoothSubdivisionVolumesBoundaryRefinementRule ( std::string  bndRefRule)

§ SetTetRefinementRule()

§ SetVectorAsPermutation()

template<typename TVector >
static void ug::SetVectorAsPermutation ( TVector &  Pv,
const TVector &  v,
std::vector< size_t > &  perm 
)
static

Function to compute a permutation of a vector

Parameters
[out]Pvthe permuted vector: Pv[perm[i]] = v[i]
[in]vthe input vector
[in]permarray mapping oldindices i -> new index perm[i]

References GetInversePermutation().

Referenced by ug::ILU< TAlgebra >::applyLU(), and ug::ILUTPreconditioner< ug::CPUAlgebra >::solve().

§ sgetrf_()

void ug::sgetrf_ ( lapack_int m,
lapack_int n,
lapack_float pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

References UG_ASSERT.

Referenced by getrf().

§ sgetri_()

void ug::sgetri_ ( lapack_int n,
lapack_float pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_float pWork,
lapack_int worksize,
lapack_int info 
)

Referenced by getri().

§ sgetrs_()

void ug::sgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const lapack_float pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
lapack_float b,
lapack_int ldb,
lapack_int info 
)

References UG_ASSERT.

Referenced by getrs().

§ ShapeQualityDegree() [1/2]

number ug::ShapeQualityDegree ( SimpleGrid sg,
int  triIndex 
)

compares the area of the triangle to the length of its edges.

the returned degree lies between 0 and 1. The higher the better.

References TriangleQuality_Area(), ug::SimpleGrid::triangles, and ug::SimpleGrid::vertices.

Referenced by TryCollapse(), and TrySwap().

§ ShapeQualityDegree() [2/2]

number ug::ShapeQualityDegree ( SimpleGrid sg)

returns the worst quality-degree of the triangles in sg.

the returned degree lies between 0 and 1. The higher the better.

References ug::SimpleGrid::triangles.

§ ShapesAtGlobalPosition() [1/2]

template<int dim>
void ug::ShapesAtGlobalPosition ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

returns the shape function values at given global positions on an element

References EDGE, FACE, ReferenceElementDimension(), UG_THROW, VERTEX, and VOLUME.

Referenced by ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), and ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction().

§ ShapesAtGlobalPosition() [2/2]

template<typename TDomain >
void ug::ShapesAtGlobalPosition ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< TDomain::dim > > &  vGlobPos,
GridObject elem,
const TDomain &  domain,
const LFEID lfeID 
)

returns the shape function values at given global positions on an element

References ug::GridObject::base_object_id(), CollectCornerCoordinates(), EDGE, FACE, ug::GridObject::reference_object_id(), UG_THROW, VERTEX, and VOLUME.

§ ShapesAtGlobalPositionElem()

template<int refDim, int dim>
void ug::ShapesAtGlobalPositionElem ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const ReferenceObjectID  roid,
const std::vector< MathVector< dim > > &  vCornerCoord,
const LFEID lfeID 
)

§ ShapesAtGlobalPositionVertex()

template<int dim>
void ug::ShapesAtGlobalPositionVertex ( std::vector< std::vector< number > > &  vvShape,
const std::vector< MathVector< dim > > &  vGlobPos,
const LFEID lfeID 
)

§ ShinyCallLoggingEnd()

void ug::ShinyCallLoggingEnd ( )

§ ShinyCallLoggingStart()

void ug::ShinyCallLoggingStart ( )

§ SideNormal() [1/2]

template<typename TRefElem , int TWorldDim>
void ug::SideNormal ( MathVector< TWorldDim > &  normalOut,
int  side,
const MathVector< TWorldDim > *  vCornerCoords 
)
inline

Normal to a side of an Element in a given Dimension.

This function computes the outer normal to a given side of an element. The Euclidean norm of the normal is the area of the side. Note that the normal is computed in the same dimensionality as the reference element itself.

Parameters
[in]sideindex of the side of the element
[in]vCornerCoordsarray of the global coordinates of the corners
[out]normalOutthe computed normal

References dim, ug::ReferenceElementProvider::get(), and ug::ReferenceElement::roid().

§ SideNormal() [2/2]

template<int dim>
void ug::SideNormal ( ReferenceObjectID  roid,
MathVector< dim > &  normalOut,
int  side,
const MathVector< dim > *  vCornerCoords 
)
inline

Computation of the side normal for a generic reference element:

§ SideNormal< 1 >()

template<>
void ug::SideNormal< 1 > ( ReferenceObjectID  roid,
MathVector< 1 > &  normalOut,
int  side,
const MathVector< 1 > *  vCornerCoords 
)
inline

References ROID_EDGE, and UG_THROW.

§ SideNormal< 2 >()

template<>
void ug::SideNormal< 2 > ( ReferenceObjectID  roid,
MathVector< 2 > &  normalOut,
int  side,
const MathVector< 2 > *  vCornerCoords 
)
inline

§ SideNormal< 3 >()

template<>
void ug::SideNormal< 3 > ( ReferenceObjectID  roid,
MathVector< 3 > &  normalOut,
int  side,
const MathVector< 3 > *  vCornerCoords 
)
inline

§ SimplifyPolylines()

§ SimplifySmoothedPolylines()

template<class TEdgeIter , class TAAPos >
void ug::SimplifySmoothedPolylines ( Grid grid,
TEdgeIter  edgesBegin,
TEdgeIter  edgesEnd,
number  curvatureThreshold,
TAAPos  aaPos,
number  smoothingAlpha,
int  smoothingIterations 
)

§ SlopeSmooth()

template<class TIterator , class AAPosVRT >
void ug::SlopeSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
const vector3 up,
int  numIterations 
)

§ SnapMarkerPointToGridVertex()

void ug::SnapMarkerPointToGridVertex ( MarkerPoint markerInOut,
Grid grid,
number  normalOffset,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid::VertexAttachmentAccessor< ANormal > *  paaNorm = NULL 
)

Snaps a marker point to a grid vertex.

Uses the initial position of the marker-point to determine the closest vertex in the grid. The new position is then calculated by an offset of the vertex-normal to the original vertex-position.

If a normal-accessor is supplied, the normal of the target vertex will be taken from it. If not, it will be calculated on the fly.

Both aaPos and paaNorm (if supplied) have to access valid vertex attachments of the given grid.

Please note that marker.norm and marker.name will remain unchanged. However the other entries will be changed.

Note that this method checks each vertex of the grid and is thus a little slow. Alternate implementations should use a kd-tree or similar.

References ug::MarkerPoint::associatedObj, ug::Grid::begin(), CalculateVertexNormal(), ug::Grid::end(), ug::MarkerPoint::localCoord, ug::MarkerPoint::pos, VecAdd(), VecDistanceSq(), and VecScale().

§ SnipString()

string ug::SnipString ( const string &  str,
size_t  totalSize,
size_t  replaceLast,
const char  replace 
)

Referenced by PrintDoFCount().

§ SnipStringFront()

string ug::SnipStringFront ( const string &  str,
size_t  totalSize,
size_t  replaceFirst,
const char  replace 
)

§ SolveDeficit()

bool ug::SolveDeficit ( DenseMatrix< VariableArray2< double > > &  A,
DenseVector< VariableArray1< double > > &  x,
DenseVector< VariableArray1< double > > &  rhs,
double  deficitTolerance 
)

§ SolveLU()

template<typename matrix_t , typename vector_t >
bool ug::SolveLU ( const DenseMatrix< matrix_t > &  A,
DenseVector< vector_t > &  x,
const size_t *  pInterchange 
)

§ SortDD()

bool ug::SortDD ( SmartPtr< DoFDistribution spDD1,
SmartPtr< DoFDistribution spDD2 
)

§ SpacialVertexSort()

template<class TVrtIter , class TAAPos >
void ug::SpacialVertexSort ( std::multimap< number, Vertex *> &  vrtsOut,
const TVrtIter  vrtsBegin,
const TVrtIter  vrtsEnd,
const typename TAAPos::ValueType &  rayFrom,
const typename TAAPos::ValueType &  rayDir,
TAAPos  aaPos,
bool  clearContainer = true 
)

sorts vertices along the specified ray

inserts vertices into the specified multimap based on local coordinate of their projection on the specified ray. if clearContainer is specified as false (default is true), the vertices will be inserted into the already existing sorted vertex set in vrtsOut.

References ProjectPointToRay().

Referenced by MultiEdgeSplit().

§ split_parameters()

static void ug::split_parameters ( ParameterList pParamList,
const char *  pParamString 
)
static

§ SplitAddRhs_OneSide()

template<typename TVector >
void ug::SplitAddRhs_OneSide ( TVector &  rhs,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

§ SplitAddRhs_Symmetric()

template<typename TVector >
void ug::SplitAddRhs_Symmetric ( TVector &  rhs,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

§ SplitAddRow_OneSide()

template<typename TMatrix >
void ug::SplitAddRow_OneSide ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

§ SplitAddRow_Symmetric()

template<typename TMatrix >
void ug::SplitAddRow_Symmetric ( TMatrix &  A,
std::vector< size_t > &  constrainedIndex,
std::vector< std::vector< size_t > > &  vConstrainingIndex 
)

§ SplitEdge()

bool ug::SplitEdge ( SimpleGrid sg)

splits the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid. The new vertexs will be added at the end of the vertex list. the first two triangles will be altered. Two additional triangles will be added at the end of the triangle list.

The normal of the new vertex is interpolated from the normals of the edges end-points.

The manipulated grid is no longer suited for swap, split or collapse operations.

§ SplitOctahedronToTetrahedrons()

void ug::SplitOctahedronToTetrahedrons ( Grid grid,
Octahedron oct,
Volume parentVol,
std::vector< Tetrahedron *> &  vTetsOut,
int  bestDiag 
)

Function for splitting an octahedron to 4 sub-tetrahedrons.

Recall the refinement of a tetrahedron (s. tetrahdron_rules.cpp). A tetrahedron is refined into 4 outer tetrahedrons and 4 inner tetrahedrons. After the 4 outer tetrahedrons are created the remaining inner cavity corresponds to an octahedron. This octahedron can be split into 4 tetrahedrons in 3 different ways, depending on the length of the following diagonals: Based on the original tetrahedron we look at the three diagonals between the following edge-centers: 0-5, 1-3, 2-4

The diagonal between edge-centers 0-5 of the tetrahedron equals a segment between vertices 1 and 3 of the octahedron

The diagonal between edge-centers 1-3 of the tetrahedron equals a segment between vertices 0 and 5 of the octahedron

the diagonal between edge-centers 2-4 of the tetrahedron equals a segment between vertices 2 and 4 of the octahedron

HINT: preferably use bestDiag = 0, as it is the inherent diagonal along which the octahedron was adaptively orientated according to tetrahedron_rules.cpp

Parameters
gridreference to grid
octpointer to octahedron
parentVolpointer to parent volume
vTetsOutreference to vector with pointers to new tetrahedrons

References aPosition, ug::Grid::create(), VecDistanceSq(), and ug::Octahedron::vertex().

Referenced by TetrahedralizeHybridTetOctGrid().

§ SqrtGramDeterminant() [1/3]

template<typename T >
MathMatrix<0,0,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< 0, 0, T > &  m)
inline

§ SqrtGramDeterminant() [2/3]

template<size_t N, typename T >
MathMatrix<N,0,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< N, 0, T > &  m)
inline

§ SqrtGramDeterminant() [3/3]

template<size_t M, typename T >
MathMatrix<0,M,T>::value_type ug::SqrtGramDeterminant ( const MathMatrix< 0, M, T > &  m)
inline

§ StartsWith()

bool ug::StartsWith ( const string &  str,
const string &  begin 
)

§ StdFuncIntegralOnVertex()

template<typename TGridFunction >
number ug::StdFuncIntegralOnVertex ( SmartPtr< TGridFunction >  spGridFct,
size_t  fct,
int  si 
)

References DoFRef().

Referenced by Integral().

§ STLFileHasASCIIFormat()

bool ug::STLFileHasASCIIFormat ( const char *  filename)

References UG_COND_THROW.

Referenced by LoadGridFromSTL().

§ SubMult() [1/6]

void ug::SubMult ( number dest,
const number b,
const number vec 
)
inline

§ SubMult() [2/6]

template<typename A , typename B , typename C >
void ug::SubMult ( A &  dest,
const B &  b,
const C &  vec 
)
inline

Referenced by BlockRef(), and SubMult().

§ SubMult() [3/6]

template<typename A , typename B , typename C >
void ug::SubMult ( DenseVector< A > &  dest,
const DenseMatrix< B > &  mat,
const DenseVector< C > &  vec 
)
inline

References SubMult(), and UG_ASSERT.

§ SubMult() [4/6]

template<typename A , typename B >
void ug::SubMult ( DenseMatrix< A > &  dest,
const double &  alpha,
const DenseMatrix< B > &  mat 
)
inline

References alpha, and SubMult().

§ SubMult() [5/6]

template<typename A , typename B >
void ug::SubMult ( DenseVector< A > &  dest,
const double &  b,
const DenseVector< B > &  vec 
)
inline

References SubMult().

§ SubMult() [6/6]

template<typename A >
void ug::SubMult ( A &  dest,
const A &  vec,
const double &  b 
)
inline

References SubMult().

§ SubsetIsRegularGrid() [1/3]

bool ug::SubsetIsRegularGrid ( const SubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References ug::GridSubsetHandler::num().

Referenced by ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::finish_timestep(), ug::DomainDiscretizationBase< TDomain, TAlgebra, StdGlobAssembler< TDomain, TAlgebra > >::prepare_timestep(), ug::SubsetGroup::regular_grid(), and SubsetIsRegularGrid().

§ SubsetIsRegularGrid() [2/3]

bool ug::SubsetIsRegularGrid ( const MGSubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References ug::MultiGridSubsetHandler::num().

§ SubsetIsRegularGrid() [3/3]

bool ug::SubsetIsRegularGrid ( const ISubsetHandler sh,
int  si 
)

returns if a subset is a regular grid

This function returns if a subset contains constrained/constraining elements such as hanging vertices, contrained edges/faces. In this case, the subset does not form a regular grid.

Parameters
[in]shSubsetHandler
[in]siSubset Index
Returns
true if subset is regular grid false if subset is non-regular grid

References SubsetIsRegularGrid(), and UG_THROW.

§ SubtractValueFromComponent()

template<typename TGridFunction , typename TBaseElem >
void ug::SubtractValueFromComponent ( SmartPtr< TGridFunction >  spGF,
size_t  fct,
number  sub 
)

Subtracts a given value from all DoFs of a given grid function associated with a given element type.

Template Parameters
TGridFunctiongrid function type
TBaseElemtype of the elements the DoFs are associated with

References AdjustMeanValue(), and DoFRef().

§ Sum1Mat1() [1/2]

template<typename T1 >
DenseMatrix<T1>::value_type ug::Sum1Mat1 ( const DenseMatrix< T1 > &  mat)
inline

§ Sum1Mat1() [2/2]

double ug::Sum1Mat1 ( double  d)
inline

§ SumGFValuesAt() [1/2]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
size_t  fct,
SubsetGroup ssGroup 
)

Sums values of a grid function at given elements (like vertices) in given subsets

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fctindex of the function
ssGroupthe subsets

References pcl::ProcessCommunicator::allreduce(), DoFRef(), PCL_RO_SUM, ug::SubsetGroup::size(), and UG_THROW.

Referenced by AdjustMeanValue().

§ SumGFValuesAt() [2/2]

template<typename TGridFunction , typename TBaseElem >
number ug::SumGFValuesAt ( TGridFunction *  u,
const char *  fct_names,
const char *  subset_names 
)

Sums values of a grid function at given elements (like vertices) in given subsets.

This version takes symbolic data.

Template Parameters
TGridFunctionthe grid function type
TBaseElemthe given element type (like 'Vertex')
Parameters
uthe grid function
fct_namesindex of the function
subset_namesthe subsets

References ug::SubsetGroup::add(), ug::FunctionGroup::add(), CheckGFforNaN(), TokenizeString(), and UG_THROW.

§ SwapEdge()

bool ug::SwapEdge ( SimpleGrid sg)

swaps the edge between the first two vertices of the SimpleGrid. sh has to fullfill the requirements stated in ug::ObtainSimpleGrid.

The manipulated grid is no longer suited for swap, split or collapse operations.

References CalculateTriangleNormal(), and ug::SimpleGrid::triangles.

§ SweepLine_CreateMonotones()

§ SweepLineEdgeIntersectsSweepLine()

bool ug::SweepLineEdgeIntersectsSweepLine ( number xOut,
const SweepLineEdge edge,
number  sweepLineY 
)

§ SynchronizeAttachedGlobalAttachments()

static void ug::SynchronizeAttachedGlobalAttachments ( Grid g,
const pcl::ProcessCommunicator procComm 
)
static

Attaches global attachments to 'g' that are attached at 'g' on some other process, thus synchronizing the set of attached global attachments of 'g'.

References pcl::ProcessCommunicator::allreduce(), and PCL_RO_BOR.

Referenced by DistributeGrid().

§ SynchronizeDistInfos()

§ TangentialSmooth()

template<class TVrtIter , class TAAPos3 >
void ug::TangentialSmooth ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos3  aaPos,
number  alpha,
size_t  numIterations 
)

Smoothes vertices in a 2d-manifold in 3d-space be moving vertices in the tangential plane, only. USES Grid::mark Computes an offset vector for each vertex and smoothes this offset by averaging with offsets of adjacent vertices. The offset is then projected back into the tangential plane and each vertex is relocated using those smoothed offsets.

References ug::Grid::associated_elements(), ug::Grid::attach_to_vertices_dv(), ug::Grid::begin_marking(), CalculateNormal(), ug::Grid::detach_from_vertices(), ug::PointerConstArray< TPtr >::empty(), ug::Grid::end_marking(), ug::Grid::is_marked(), ug::Grid::mark(), ProjectPointToPlane(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecDot(), VecNormalize(), VecScale(), VecScaleAdd(), and VecSubtract().

§ TangentialSmoothSimple()

template<class TVrtIter , class TAAPos3 >
void ug::TangentialSmoothSimple ( Grid g,
TVrtIter  vrtsBegin,
TVrtIter  vrtsEnd,
TAAPos3  aaPos,
number  alpha,
size_t  numIterations 
)

§ TerminateAbortedRun()

UG_API void ug::TerminateAbortedRun ( )

Terminates the current run if AbortRun() was called and the abort-run-flag is thus set to true.

References UGForceExit().

Referenced by ug::bridge::RegisterBridge_Misc().

§ TestGridLayoutMap()

§ TestQuadRule()

§ TetrahedralizeHybridTetOctGrid()

void ug::TetrahedralizeHybridTetOctGrid ( MultiGrid mg,
int  bestDiag 
)

Conversion function for hybrid tetra-/octahedral multigrids.

This function converts each octahedron in all levels to four tetrahedra and deletes the original octahedra from the multigrid.

WARNING: correct parent <-> childhood relationships won't persist

Parameters
mgreference to MultiGrid
bestDiagspecify fixed or adaptive diagonal for octahedral split

References aPosition, ug::MultiGrid::begin(), ug::MultiGrid::end(), ug::Grid::erase(), ug::MultiGrid::get_parent(), ug::MultiGrid::num_levels(), PROFILE_FUNC_GROUP, and SplitOctahedronToTetrahedrons().

Referenced by ug::bridge::Refinement::Functionality::Common().

§ TetReferenceMappingTest()

void ug::TetReferenceMappingTest ( std::vector< number vCornerCoord0,
std::vector< number vCornerCoord1,
std::vector< number vCornerCoord2,
std::vector< number vCornerCoord3,
std::vector< number vGlobPos 
)

§ ThrowIfIsVectorNanOrTooBig()

template<typename T >
bool ug::ThrowIfIsVectorNanOrTooBig ( const T &  t,
const char *  callerName 
)
inline

References IsFiniteAndNotTooBig(), and UG_THROW.

§ ThrowMissingVirtualMethod() [1/2]

§ ThrowMissingVirtualMethod() [2/2]

void ug::ThrowMissingVirtualMethod ( const char *  method)
inline

§ TokenizeString() [1/2]

§ TokenizeString() [2/2]

vector<string> ug::TokenizeString ( const string &  str,
const char  delimiter 
)

References TokenizeString().

§ TokenizeTrimString() [1/2]

§ TokenizeTrimString() [2/2]

vector<string> ug::TokenizeTrimString ( const string &  str,
const char  delimiter 
)

References TokenizeTrimString().

§ ToLower()

§ ToUpper()

string ug::ToUpper ( string  str)

§ TransposeModeToChar()

char ug::TransposeModeToChar ( eTransposeMode  t,
bool  isComplex 
)
inline

References ModeConjTranspose, ModeNoTrans, ModeTranspose, and UG_THROW.

Referenced by getrs().

§ TraverseBreadthFirst()

template<class tree_t , class traverser_t >
void ug::TraverseBreadthFirst ( const tree_t &  tree,
traverser_t &  traverser 
)

§ TraverseDepthFirst()

template<class tree_t , class traverser_t >
void ug::TraverseDepthFirst ( const tree_t &  tree,
traverser_t &  traverser 
)

§ TraverseDepthFirstRecursion()

template<class tree_t , class traverser_t >
int ug::TraverseDepthFirstRecursion ( const tree_t &  tree,
traverser_t &  traverser,
int  curNode 
)

References ABORT_TRAVERSAL, and TRAVERSE_CHILDREN.

Referenced by TraverseDepthFirst().

§ TriangleFill_SweepLine() [1/4]

UG_API bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector2 > &  srcVrts,
std::vector< int > &  srcEdges 
)

§ TriangleFill_SweepLine() [2/4]

template<class TIterator >
bool ug::TriangleFill_SweepLine ( Grid grid,
TIterator  edgesBegin,
TIterator  edgesEnd,
APosition aPosVRT,
AInt aIntVRT,
SubsetHandler pSH = NULL,
int  newSubsetIndex = -1 
)

Performs triangulation of a polygon and resoves additional inner edges.

This algortighm uses Grid::mark.

The polygon should lie in a 2d hyperplane.

References ug::GridSubsetHandler::assign_subset(), ug::Grid::begin_marking(), ug::Grid::create(), ug::Grid::end_marking(), ug::Grid::has_vertex_attachment(), ug::Grid::is_marked(), ug::Grid::mark(), TriangleFill_SweepLine(), UG_LOG, and ug::EdgeVertices::vertex().

§ TriangleFill_SweepLine() [3/4]

bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector2 > &  srcVrts,
std::vector< int > &  srcEdges 
)

§ TriangleFill_SweepLine() [4/4]

UG_API bool ug::TriangleFill_SweepLine ( std::vector< int > &  facesOut,
const std::vector< vector3 > &  srcVrts,
std::vector< int > &  srcEdges 
)

Performs triangulation of a 3d polygon and resolves inner edges.

The polygon should lie in a 2d hyperplane.

References TransformPointSetTo2D().

§ TriCubeIntersection()

static int ug::TriCubeIntersection ( const TRI t)
static

§ TrimString()

§ TrueFalseString()

const char* ug::TrueFalseString ( bool  b)
inline

§ trunk()

static vector2 ug::trunk ( const vector2 v,
number  smallestVal 
)
static

§ TryCollapse() [1/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
Vertex* ug::TryCollapse ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)

§ TryCollapse() [2/2]

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
static Vertex* ug::TryCollapse ( const AdjustEdgeLengthDesc desc,
Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)
static

§ TrySplit() [1/2]

template<class TAAPosVRT , class TAANormVRT >
bool ug::TrySplit ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
EdgeSelector pCandidates = NULL,
SubsetHandler pshMarks = NULL 
)

§ TrySplit() [2/2]

template<class TAAPosVRT , class TAANormVRT >
static bool ug::TrySplit ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
EdgeSelector pCandidates = NULL,
SubsetHandler pshMarks = NULL 
)
static

§ TrySwap()

template<class TAAPosVRT , class TAANormVRT , class TAAIntVRT >
bool ug::TrySwap ( Grid grid,
Edge e,
TAAPosVRT &  aaPos,
TAANormVRT &  aaNorm,
TAAIntVRT &  aaInt,
SubsetHandler pshMarks = NULL,
EdgeSelector pCandidates = NULL 
)

§ TypeName() [1/2]

template<typename T >
std::string ug::TypeName ( const T &  t)
inline

§ TypeName() [2/2]

template<typename T >
std::string ug::TypeName ( )
inline

References demangle().

§ UG_LOG_Matrix()

template<class MT >
void ug::UG_LOG_Matrix ( const MT &  A)

§ UG_LOG_Vector()

template<class VT >
void ug::UG_LOG_Vector ( const VT &  vec)

§ UGFinalize()

UG_API int ug::UGFinalize ( )

finalizes ug

If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Finalize.

If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Finalize.

Use ug::UGOutputProfileStatsOnExit to enable profiling output during finalize.

References pcl::Finalize(), and UGFinalizeNoPCLFinalize().

Referenced by main(), and ug::vrl::registerUGFinalize().

§ UGFinalizeNoPCLFinalize()

§ UGForceExit()

UG_API void ug::UGForceExit ( )

Calls UGFinalize and terminates the application.

If the build-target is vrl and if no parallel build is performed, this method throws an instance of SoftAbort

References pcl::Abort(), pcl::NumProcs(), UG_LOG, and UGFinalizeNoPCLFinalize().

Referenced by ug::script::breakpoint(), ug::bridge::RegisterBridge_Util(), and TerminateAbortedRun().

§ UGGetVersionString()

UG_API std::string ug::UGGetVersionString ( )

Returns the version number of the current ug-version.

The string is formatted like this: "majorVersion.minorVersion.updateVersion"

References gUGVersionString().

Referenced by Java_edu_gcsc_vrl_ug_UG__1getUGVersion(), and main().

§ UGInit()

UG_API int ug::UGInit ( int *  argcp,
char ***  argvp,
int  parallelOutputProcRank 
)

initializes ug

This method should be called at the beginning of main(...). If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Init.

This method should be called at the beginning of main(...). If ug has been compiled for parallel use (UG_PARALLEL is defined) then this method will internally call pcl::Init.

This method also sets the common paths in PathProvider.

References GetLogAssistant(), pcl::Init(), ug::bridge::InitBridge(), InitPaths(), PROFILE_FUNC, ug::LogAssistant::set_output_process(), UG_LOG, and UGInitPlugins().

Referenced by Java_edu_gcsc_vrl_ug_UG__1ugInit().

§ UGInitPlugins()

UG_API bool ug::UGInitPlugins ( )

Init (if UG_PLUGINS is set) embedded or non-shared plugins.

Referenced by main(), UGInit(), and UGOutputProfileStatsOnExit().

§ UGOutputProfileStatsOnExit()

UG_API void ug::UGOutputProfileStatsOnExit ( bool  bEnable)

Call with true, if profiling output is desired at the end of the show.

References ug::PathProvider::get_path(), ug::bridge::GetUGRegistry(), LoadPlugins(), outputProfileStats, PLUGIN_PATH, and UGInitPlugins().

Referenced by main(), and ug::bridge::RegisterBridge_Profiler().

§ UpdateChainInfo()

§ UpdateProfiler_BridgeImpl()

static void ug::UpdateProfiler_BridgeImpl ( number  damping)
static

§ UpdateTotalMem()

void ug::UpdateTotalMem ( )

The profiling process only calcs the selfMemory of each Profile Node. This function calcs the total mem of each profile node.

References CalcTotalMem(), EnableMemTracker(), and totalmem.

§ Valence3VertexIsObsolete()

bool ug::Valence3VertexIsObsolete ( const vector3 p,
const vector3 c0,
const vector3 c1,
const vector3 c2,
number  maxSquaredHeightToBaseAreaRatio 
)
inline

§ Valence4VertexIsObsolete()

bool ug::Valence4VertexIsObsolete ( const vector3 p,
const vector3 c0,
const vector3 c1,
const vector3 c2,
const vector3 c3,
number  maxSquaredHeightToBaseAreaRatio 
)
inline

diagonal is always assumed to be between c0 and c2

References CalculateTriangleNormalNoNormalize(), RayTriangleIntersection(), TriangleArea(), VecAdd(), and VecDistanceSq().

Referenced by ReplaceLowValenceVertices().

§ Vanka_step()

template<typename Matrix_type , typename Vector_type >
bool ug::Vanka_step ( const Matrix_type &  A,
Vector_type &  x,
const Vector_type &  b,
number  relax 
)

§ VecAssign() [1/2]

template<typename vector_t >
void ug::VecAssign ( vector_t &  dest,
const vector_t &  v1 
)
inline

sets dest = v1 entrywise

Referenced by VecAssign().

§ VecAssign() [2/2]

template<typename T >
void ug::VecAssign ( ParallelVector< T > &  dest,
const ParallelVector< T > &  v1 
)
inline

§ VecBroadcast()

template<typename TVector >
void ug::VecBroadcast ( TVector *  pVecDest,
const TVector *  pVecSrc,
const IndexLayout slaveLayoutDest,
const IndexLayout masterLayoutSrc,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

broadcasts all values from master indices to slave values in a second vector

This function broadcasts the master values from a source vector to the slave values of a second vector. Slave values are overwritten. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[out]pVecDestdestination Parallel Vector
[in]pVecSrcsource Parallel Vector
[in]masterLayouDestMaster Layout
[in]slaveLayoutSrcSlave Layout
[in]pComParallel Communicator

References pcl::InterfaceCommunicator< TLayout >::communicate(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::PrimalSubassembledMatrixInverse< algebra_type >::apply_return_defect().

§ VecGather()

template<typename TVector >
void ug::VecGather ( TVector *  pVecDest,
const TVector *  pVecSrc,
const IndexLayout masterLayoutDest,
const IndexLayout slaveLayoutSrc,
pcl::InterfaceCommunicator< IndexLayout > *  pCom = NULL 
)

gathers all values in master indices of a second vector

This function gathers the slave values from a source vector in the master values of a second vector. Slave values are added to the current master values. A InterfaceCommunicator is created iff no communicator passed.

Parameters
[out]pVecDestdestination Parallel Vector
[in]pVecSrcsource Parallel Vector
[in]masterLayouDestMaster Layout
[in]slaveLayoutSrcSlave Layout
[in]pComParallel Communicator

References pcl::InterfaceCommunicator< TLayout >::communicate(), PROFILE_FUNC_GROUP, pcl::InterfaceCommunicator< TLayout >::receive_data(), and pcl::InterfaceCommunicator< TLayout >::send_data().

Referenced by ug::PrimalSubassembledMatrixInverse< algebra_type >::apply_return_defect().

§ VecNormSquared() [1/3]

double ug::VecNormSquared ( const double &  a)
inline

§ VecNormSquared() [2/3]

template<typename vector_t >
number ug::VecNormSquared ( const vector_t &  a,
const vector_t &  b,
const std::vector< size_t >  vIndex 
)
inline

returns norm_2^2(a) on a given index set

References VecNormSquaredAdd().

§ VecNormSquared() [3/3]

template<typename vector_t >
double ug::VecNormSquared ( const vector_t &  a)
inline

returns norm_2^2(a)

References VecNormSquaredAdd().

§ VecNormSquaredAdd() [1/3]

void ug::VecNormSquaredAdd ( const double &  a,
double &  s 
)
inline

calculates s += norm_2^2(a)

Referenced by VecNormSquared(), and VecNormSquaredAdd().

§ VecNormSquaredAdd() [2/3]

template<typename vector_t >
void ug::VecNormSquaredAdd ( const vector_t &  a,
const vector_t &  b,
number sum,
const std::vector< size_t >  vIndex 
)
inline

calculates s += norm_2^2(a) on a given index set

References UG_ASSERT, and VecNormSquaredAdd().

§ VecNormSquaredAdd() [3/3]

template<typename vector_t >
void ug::VecNormSquaredAdd ( const vector_t &  a,
double &  sum 
)
inline

calculates s += norm_2^2(a)

References VecNormSquaredAdd().

§ VecProd() [1/6]

§ VecProd() [2/6]

template<typename vector_t >
void ug::VecProd ( const vector_t &  a,
const vector_t &  b,
number sum,
const std::vector< size_t >  vIndex 
)
inline

calculates s += scal<a, b> on a given index set

References UG_ASSERT, and VecProdAdd().

§ VecProd() [3/6]

template<typename vector_t >
number ug::VecProd ( const vector_t &  a,
const vector_t &  b,
const std::vector< size_t >  vIndex 
)
inline

returns scal<a, b> on a given index set

References VecProd().

§ VecProd() [4/6]

template<typename vector_t >
void ug::VecProd ( const vector_t &  a,
const vector_t &  b,
double &  sum 
)
inline

calculates s += scal<a, b>

References VecProdAdd().

§ VecProd() [5/6]

template<typename vector_t >
double ug::VecProd ( const vector_t &  a,
const vector_t &  b 
)
inline

returns scal<a, b>

References VecProdAdd().

§ VecProd() [6/6]

template<typename T >
double ug::VecProd ( const ParallelVector< T > &  a,
const ParallelVector< T > &  b 
)
inline

§ VecProdAdd() [1/2]

void ug::VecProdAdd ( const double &  a,
const double &  b,
double &  s 
)
inline

calculates s += scal<a, b>

Referenced by VecProd(), and VecProdAdd().

§ VecProdAdd() [2/2]

template<typename vector_t >
void ug::VecProdAdd ( const vector_t &  a,
const vector_t &  b,
double &  s 
)
inline

References VecProdAdd().

§ VecScaleAdd() [1/8]

void ug::VecScaleAdd ( double &  dest,
double  alpha1,
const double &  v1,
double  alpha2,
const double &  v2 
)
inline

calculates dest = alpha1*v1 + alpha2*v2. for doubles

§ VecScaleAdd() [2/8]

void ug::VecScaleAdd ( double &  dest,
double  alpha1,
const double &  v1,
double  alpha2,
const double &  v2,
double  alpha3,
const double &  v3 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3. for doubles

§ VecScaleAdd() [3/8]

template<typename vector_t >
void ug::VecScaleAdd ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
number  alpha2,
const vector_t &  v2,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 on a given index set

References UG_ASSERT, and VecScaleAdd().

§ VecScaleAdd() [4/8]

template<typename vector_t >
void ug::VecScaleAdd ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
number  alpha2,
const vector_t &  v2,
number  alpha3,
const vector_t &  v3,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3 on a given index set

References UG_ASSERT, and VecScaleAdd().

§ VecScaleAdd() [5/8]

template<typename vector_t , template< class T > class TE_VEC>
void ug::VecScaleAdd ( TE_VEC< vector_t > &  dest,
double  alpha1,
const TE_VEC< vector_t > &  v1,
double  alpha2,
const TE_VEC< vector_t > &  v2 
)
inline

calculates dest = alpha1*v1 + alpha2*v2

References VecScaleAdd().

§ VecScaleAdd() [6/8]

template<typename vector_t , template< class T > class TE_VEC>
void ug::VecScaleAdd ( TE_VEC< vector_t > &  dest,
double  alpha1,
const TE_VEC< vector_t > &  v1,
double  alpha2,
const TE_VEC< vector_t > &  v2,
double  alpha3,
const TE_VEC< vector_t > &  v3 
)
inline

calculates dest = alpha1*v1 + alpha2*v2 + alpha3*v3

References VecScaleAdd().

§ VecScaleAdd() [7/8]

template<typename T >
void ug::VecScaleAdd ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1,
double  alpha2,
const ParallelVector< T > &  v2 
)
inline

§ VecScaleAdd() [8/8]

template<typename T >
void ug::VecScaleAdd ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1,
double  alpha2,
const ParallelVector< T > &  v2,
double  alpha3,
const ParallelVector< T > &  v3 
)
inline

§ VecScaleAssign() [1/4]

§ VecScaleAssign() [2/4]

template<typename vector_t >
void ug::VecScaleAssign ( vector_t &  dest,
number  alpha1,
const vector_t &  v1,
const std::vector< size_t >  vIndex 
)
inline

calculates dest = alpha1*v1 on a given index set

References UG_ASSERT, and VecScaleAssign().

§ VecScaleAssign() [3/4]

template<typename vector_t >
void ug::VecScaleAssign ( vector_t &  dest,
double  alpha1,
const vector_t &  v1 
)
inline

calculates dest = alpha1*v1

References VecScaleAssign().

§ VecScaleAssign() [4/4]

template<typename T >
void ug::VecScaleAssign ( ParallelVector< T > &  dest,
double  alpha1,
const ParallelVector< T > &  v1 
)
inline

§ VecSet()

template<typename vector_t >
void ug::VecSet ( vector_t &  dest,
number  alpha,
const std::vector< size_t >  vIndex 
)
inline

sets dest = alpha on a given index set

References alpha, and UG_ASSERT.

§ vecSum() [1/4]

void ug::vecSum ( double &  erg,
double  alpha,
double  vec 
)
inline

Referenced by vecSum().

§ vecSum() [2/4]

template<typename T >
void ug::vecSum ( typename T::value_type erg,
double  alpha,
const T &  vec 
)
inline

References alpha.

§ vecSum() [3/4]

double ug::vecSum ( double  alpha,
double  vec 
)
inline

§ vecSum() [4/4]

template<typename T >
T::value_type ug::vecSum ( double  alpha,
const T &  vec 
)
inline

References vecSum().

§ VectorAdd()

template<typename vector_t , typename T1 >
void ug::VectorAdd ( vector_t &  dest,
const T1 &  t1 
)
inline

transforms x += X1 into x = (1.0)*X1 + (1.0)*x

§ VectorAssign() [1/14]

template<typename vector_t , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2,
double  alpha3,
const vector_t2 &  v3 
)
inline

§ VectorAssign() [2/14]

template<typename vector_t , typename matrix_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const vector_t2 &  v2,
double  alpha3,
const vector_t3 &  v3 
)
inline

§ VectorAssign() [3/14]

template<typename vector_t , typename T0 , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha0,
const T0 &  t0,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

v = x + v + Mv -> v = x + Mv + v v = v + v + Mv v = Mv + v + Mv

References VectorAssign().

§ VectorAssign() [4/14]

template<typename vector_t , typename matrix_t , typename vector_t2 , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2,
double  alpha3,
const T3 &  t3 
)
inline

v = v + Mv + X -> v = Mv + v + X v = v + Mv + v v = v + Mv + Mv

References VectorAssign().

§ VectorAssign() [5/14]

template<typename vector_t , typename vector_t1 , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t1 &  v1,
double  alpha2,
const vector_t2 &  v2,
double  alpha3,
const vector_t3 &  v3 
)
inline

v = v + v + v

References getScaling(), getVector(), and VecScaleAdd().

§ VectorAssign() [6/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

§ VectorAssign() [7/14]

template<typename vector_t , typename matrix_t , typename vector_t2 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const MatVec_Expression< matrix_t, vector_t > &  m1,
double  alpha2,
const vector_t2 &  v2 
)
inline

§ VectorAssign() [8/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t &  v1,
double  alpha2,
const MatVec_Expression< matrix_t, vector_t > &  m2 
)
inline

v = v + Mv

References VectorAssign().

§ VectorAssign() [9/14]

template<typename vector_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const vector_t2 &  v1,
double  alpha2,
const vector_t3 &  v2 
)
inline

v = v + v

References getScaling(), getVector(), and VecScaleAdd().

§ VectorAssign() [10/14]

template<typename vector_t , typename matrix_t >
void ug::VectorAssign ( vector_t &  dest,
const MatVec_Expression< matrix_t, vector_t > &  m1 
)
inline

§ VectorAssign() [11/14]

template<typename vector_t , typename vector_t2 , typename vector_t3 >
void ug::VectorAssign ( vector_t &  dest,
const vector_t2 &  v1 
)
inline

v = v

References getScaling(), getVector(), and VecScaleAssign().

§ VectorAssign() [12/14]

template<typename vector_t , typename T1 , typename operation , typename T2 , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const AlphaMatVec_X_Expression< T1, operation, T2 > &  t1,
double  alpha2,
const T3 &  t2 
)
inline

§ VectorAssign() [13/14]

template<typename vector_t , typename T1 , typename T2 , typename operation , typename T3 >
void ug::VectorAssign ( vector_t &  dest,
double  alpha1,
const T1 &  t1,
double  alpha2,
const AlphaMatVec_X_Expression< T2, operation, T3 > &  t2 
)
inline

§ VectorAssign() [14/14]

template<typename vector_t , typename T1 , typename operation , typename T2 >
void ug::VectorAssign ( vector_t &  dest,
const AlphaMatVec_X_Expression< T1, operation, T2 > &  t 
)
inline

§ VectorSub()

template<typename vector_t , typename T1 >
void ug::VectorSub ( vector_t &  dest,
const T1 &  t1 
)
inline

transforms x -= X1 into x = (-1.0)*X1 + (1.0)*x

References VectorAssign().

§ vertexGroupsMatch()

bool ug::vertexGroupsMatch ( const IVertexGroup elem,
const IVertexGroup desc 
)

§ VisitAll()

template<class TIter >
void ug::VisitAll ( const TIter  begin,
const TIter  end,
boost::function< void(typename TIter::value_type)>  visitorCallback 
)

Visits all elements between begin and end and executes the visitorCallback on them.

§ VisitAreaBoundary()

template<class TIter >
void ug::VisitAreaBoundary ( Grid g,
const TIter  begin,
const TIter  end,
boost::function< bool(typename TIter::value_type)>  cbBelongsToArea,
boost::function< void(typename Pointer2Value< typename TIter::value_type >::type::side)>  cbVisitSide 
)

Visits all boundary elements of the area specified through the iterators.

WARNING: This method uses Grid::mark TIter::value_type has to be compatible to Edge*, Face* or Volume*. Lets say that TIter::value_type equals TElem*.

You have to specify a callback cbBelongsToArea with the signature 'void (TElem*)'. which tells for each element of TIter::value_type, whether it lies in the area or not. Note that this callback should optimally return true for all elements between begin and end, and false for all other elements.

You furthermore have to specify a callback cbVisitSide, with the signature 'void (TElem::side*)'. This callback is executed for all sides of the given area.

References ug::Grid::begin_marking(), CollectAssociated(), ug::Grid::is_marked(), and ug::Grid::mark().

§ WarnIfIsVectorNanOrTooBig()

template<typename T >
bool ug::WarnIfIsVectorNanOrTooBig ( const T &  t,
const char *  callerName 
)
inline

References IsFiniteAndNotTooBig(), and UG_LOG.

§ WeightedEdgeSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedEdgeSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations,
Grid::vertex_traits::callback  cbSmoothVertex 
)

vertices which will not be smoothed get a special weight when being considered during smoothing of neighbored vertices.

Make sure that cbSmoothVertex returns true for exactly all those vertices, which in the range of the specified iterators.

References ug::Grid::associated_elements(), GetConnectedVertex(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecLengthSq(), VecSet(), and VecSubtract().

§ WeightedFaceSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedFaceSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
int  numIterations,
Grid::vertex_traits::callback  cbSmoothVertex 
)

vertices which will not be smoothed get a special weight when being considered during smoothing of neighbored vertices.

Make sure that cbSmoothVertex returns true for exactly all those vertices, which in the range of the specified iterators.

References ug::Grid::associated_elements(), CalculateVolume(), GetConnectedEdge(), ug::FaceVertices::num_vertices(), ug::PointerConstArray< TPtr >::size(), VecAdd(), VecScaleAdd(), VecSet(), VecSubtract(), and ug::EdgeVertices::vertex().

§ WeightedNormalSmooth()

template<class TIterator , class AAPosVRT >
void ug::WeightedNormalSmooth ( Grid grid,
TIterator  vrtsBegin,
TIterator  vrtsEnd,
AAPosVRT &  aaPos,
number  alpha,
number  dotThreshold,
int  numIterations 
)

The higher the dot-product between an outgoing edge and the vertex normal, the higher the influence of that edge during smoothing of that vertex.

References ug::Grid::associated_elements(), CalculateVertexNormal(), GetConnectedVertex(), ug::PointerConstArray< TPtr >::size(), VecDot(), VecNormalize(), and VecSet().

§ WriteAlgebraIndices()

template<typename TDomain >
void ug::WriteAlgebraIndices ( std::string  name,
ConstSmartPtr< TDomain >  domain,
ConstSmartPtr< DoFDistribution dd 
)

§ WriteCallLog() [1/2]

void ug::WriteCallLog ( const char *  filename)

§ WriteCallLog() [2/2]

void ug::WriteCallLog ( const char *  filename,
int  procId 
)

§ WriteEdges()

static void ug::WriteEdges ( ofstream &  out,
EdgeIterator  edgesBegin,
EdgeIterator  edgesEnd,
int  indexDimension,
Grid::VertexAttachmentAccessor< AInt > &  aaInt 
)
static

References ug::EdgeVertices::vertex().

Referenced by SaveGridToOBJ().

§ WriteFaces()

static void ug::WriteFaces ( ofstream &  out,
FaceIterator  facesBegin,
FaceIterator  facesEnd,
int  indexDimension,
Grid::VertexAttachmentAccessor< AInt > &  aaInt 
)
static

§ WriteGridHeader()

static void ug::WriteGridHeader ( const GridHeader gridHeader,
BinaryBuffer out 
)
static

§ WriteLGM()

§ WriteMatrixToConnectionViewer()

template<class TFunction >
void ug::WriteMatrixToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::matrix_type &  A,
const TFunction &  u 
)

§ WriteNG()

§ WriteParent()

template<class TElem >
static void ug::WriteParent ( MultiGrid mg,
TElem *  pElem,
MultiElementAttachmentAccessor< AInt > &  aaInt,
BinaryBuffer out 
)
static

§ WriteProfileDataXML() [1/2]

void ug::WriteProfileDataXML ( const char *  filename)

Writes profile data of process 0 to the specified file.

Referenced by ug::bridge::RegisterBridge_Profiler().

§ WriteProfileDataXML() [2/2]

void ug::WriteProfileDataXML ( const char *  filename,
int  procId 
)

Writes profile data to the specified file.

Writes profile data of all procs (procId == -1) or of specified proc (procId >= 0) to the specified file

§ WriteSubsetIndicesToStream()

template<class TElemIter >
static void ug::WriteSubsetIndicesToStream ( TElemIter  iterBegin,
TElemIter  iterEnd,
ISubsetHandler sh,
BinaryBuffer out 
)
static

§ WriteVectorCSV() [1/2]

template<typename Vector_type , typename postype >
void ug::WriteVectorCSV ( const char *  filename,
const Vector_type &  b,
postype *  positions,
int  dimensions 
)

writes to a file in somewhat SparseMatrix-market format (for connection viewer)

Parameters
filenameFilename to write matrix to
bVector
positionsPositions, there has to be one position for each i in (0, ..., max(A.num_rows(), A.num_cols())).
dimensionsDimensions of Positions

Referenced by SaveVectorCSV(), and WriteVectorCSV().

§ WriteVectorCSV() [2/2]

template<class TFunction >
void ug::WriteVectorCSV ( const char *  filename,
const typename TFunction::algebra_type::vector_type &  b,
const TFunction &  u 
)

§ WriteVectorToConnectionViewer() [1/2]

template<class TFunction >
void ug::WriteVectorToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::vector_type &  b,
const TFunction &  u,
const typename TFunction::algebra_type::vector_type *  pCompareVec = NULL 
)

§ WriteVectorToConnectionViewer() [2/2]

template<class TFunction >
void ug::WriteVectorToConnectionViewer ( const char *  filename,
const typename TFunction::algebra_type::matrix_type &  A,
const typename TFunction::algebra_type::vector_type &  b,
const TFunction &  u,
const typename TFunction::algebra_type::vector_type *  pCompareVec = NULL 
)

§ XMLStringEscape()

string ug::XMLStringEscape ( string  s)

References ReplaceAll().

Referenced by ToString().

§ zgetrf_()

void ug::zgetrf_ ( lapack_int m,
lapack_int n,
std::complex< lapack_double > *  pColMajorMatrix,
lapack_int lda,
lapack_int ipiv,
lapack_int info 
)

Referenced by getrf().

§ zgetrs_()

void ug::zgetrs_ ( char *  trans,
lapack_int n,
lapack_int nrhs,
const std::complex< lapack_double > *  pColMajorMatrix,
lapack_int lda,
const lapack_int ipiv,
std::complex< lapack_double > *  b,
lapack_int ldb,
lapack_int info 
)

Variable Documentation

§ allocated

size_t ug::allocated = 0

§ aNormal

UG_API ANormal ug::aNormal

The standard 3d normal type.

Referenced by LoadMarkerPointsFromFile().

§ aPosition

§ aPosition1

§ aPosition2

§ bMemTracker

bool ug::bMemTracker =false

§ BOXPRIORITYQUEUE2_MAXIMAL_VALUE

const int ug::BOXPRIORITYQUEUE2_MAXIMAL_VALUE = 500

maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()).

§ BOXPRIORITYQUEUE_MAXIMAL_VALUE

const int ug::BOXPRIORITYQUEUE_MAXIMAL_VALUE = 500

maximal value for T::get_val(). Keep in mind that memory requirements are O(max get_val()).

Referenced by ug::BoxPriorityQueue2< T >::insert_item().

§ callsOnHold

std::vector<ProfileCall> ug::callsOnHold

§ cost_del

const unsigned int ug::cost_del = 1

Referenced by LevenshteinDistance().

§ cost_ins

const unsigned int ug::cost_ins = 1

Referenced by LevenshteinDistance().

§ cost_sub

const unsigned int ug::cost_sub = 1

Referenced by LevenshteinDistance().

§ DBG_COLORING

DebugID ug::DBG_COLORING

§ DBG_MATRIX_OVERLAP

DebugID ug::DBG_MATRIX_OVERLAP

§ DID_CUDA

DebugID ug::DID_CUDA

Referenced by ug::CUDAManager::init().

§ DID_DATA_EVALUATOR

DebugID ug::DID_DATA_EVALUATOR("DATA_EVALUATOR")

§ DID_ELEM_DISC_ASSEMBLE_UTIL

DebugID ug::DID_ELEM_DISC_ASSEMBLE_UTIL

§ DID_FV1_GEOM

§ DID_LOCAL_FINITE_ELEMENT_PROVIDER

DebugID ug::DID_LOCAL_FINITE_ELEMENT_PROVIDER("LOCAL_FINITE_ELEMENT_PROVIDER")

§ DID_LUACOMPILER

§ DID_REFERENCE_MAPPING

DebugID ug::DID_REFERENCE_MAPPING("REFERENCE_MAPPING")

§ DID_REFERENCE_MAPPING_GLOB_TO_LOC

DebugID ug::DID_REFERENCE_MAPPING_GLOB_TO_LOC("REFERENCE_MAPPING_GLOB_TO_LOC")

§ g_bNoNANCheck

bool ug::g_bNoNANCheck = true

§ g_boundaryRefinementRule

GlobalBoundaryRefinementRule ug::g_boundaryRefinementRule = LINEAR
static

global boundary refinement rule information switching between linear and subdivision Loop refinement

Referenced by GetBoundaryRefinementRule().

§ g_minSecondUntilProgress

size_t ug::g_minSecondUntilProgress = 3

Referenced by ug::Progress::Progress().

§ g_ShinyCallLoggingMaxFreq

int ug::g_ShinyCallLoggingMaxFreq = 1

§ LG_DIST

§ MAX_FACE_VERTICES

const int ug::MAX_FACE_VERTICES = 4

constant that defines the maximal number of vertices per face.

This constant is mainly used by FaceDescriptor. If required, one should be able to increase it without any problems.

Referenced by ug::HangingNodeRefinerBase< Selector >::refine_face_with_hanging_vertex(), and ug::HangingNodeRefinerBase< Selector >::refine_face_with_normal_vertex().

§ MAX_VOLUME_VERTICES

const int ug::MAX_VOLUME_VERTICES = 8

constant that defines the maximal number of vertices per volume element.

This constant is mainly used by VolumeDescriptor.

§ MAXBLOCKSIZE

const size_t ug::MAXBLOCKSIZE = 53
static

§ memTracker

MemTrackerMap ug::memTracker

Referenced by DisplayVacantMemory().

§ MG_EDGE_MAX_EDGE_CHILDREN

const int ug::MG_EDGE_MAX_EDGE_CHILDREN = 2

maximal number of edges that can be children of an edge.

§ MG_FACE_MAX_EDGE_CHILDREN

const int ug::MG_FACE_MAX_EDGE_CHILDREN = 4

maximal number of edges that can be children of a face.

§ MG_FACE_MAX_FACE_CHILDREN

const int ug::MG_FACE_MAX_FACE_CHILDREN = 4

maximal number of faces that can be children of a face.

§ PI

§ profileCalls

std::vector<ProfileCall> ug::profileCalls

§ s_abortRun

bool ug::s_abortRun = false
static

§ SchurDebug

§ selfmem

map<const Shiny::ProfileNode *, size_t> ug::selfmem

Referenced by CalcTotalMem(), and GetSelfMem().

§ shiftCharacters

const char ug::shiftCharacters[] = "|#[+"
static

§ shiftCharactersLength

const size_t ug::shiftCharactersLength = sizeof(shiftCharacters)/sizeof(shiftCharacters[0])
static

Referenced by ConfigShiftRotation(), and IsShiftChar().

§ SMALL

const number ug::SMALL = 1.0e-12

Referenced by AdaptSurfaceGridToCylinder(), ug::FracturedMediaRefiner< TGrid, TAPosition >::collect_objects_for_refine(), ContainsPoint(), ug::FVLineSourceOrSink< dim, TData >::corresponds_to(), CutEdgesWithPlane(), DistanceLineToLine(), DropAPerpendicular(), ExpandFractures2d(), ExpandFractures3d(), ExportGridToTIKZ(), ExtrudeLayers(), ug::LagrangeLSFS< ReferenceTriangle, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferenceTriangle >::grad(), ug::LagrangeLSFS< ReferenceTetrahedron, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferenceTetrahedron >::grad(), ug::LagrangeLSFS< ReferencePrism, TOrder >::grad(), ug::FlexLagrangeLSFS< ReferencePrism >::grad(), ug::DelaunayInfo< TAAPos >::init_marks(), IntersectCoplanarTriangles(), InvMatVecMult_byGivens(), ug::DelaunayInfo< TAAPos >::is_classifiable(), IsVertical(), LiesOnBoundary(), LineLineIntersection3d(), MarkForRefinement_AnisotropicDirection(), NotVertical(), ug::TIKZElem::operator<(), operator<(), PartitionElements_RegularGrid(), ug::CylinderProjector::perform_projection(), ug::SphereProjector::perform_projection(), PerformRetetrahedralization(), PerformTetrahedralization(), ug::UGXFileInfo::physical_grid_dimension(), PointIsInsideQuadrilateral(), PointIsInsideTetrahedron(), PointIsInsideTriangle(), ug::ClusterElementStacks< elem_t, vector_t >::post_process(), ProjectPointToRay(), QuadDiagonalIsValid(), QualityGridGeneration(), RayBoxIntersection(), RayCylinderIntersection(), RayRayIntersection3d(), RayRayProjection(), RaySphereIntersection(), ResolveTriangleIntersections(), SlopeSmooth(), TriangleCircumcenter(), TriangleQuality_Area(), and UpdateChainInfo().

§ SMALL_SQ

§ totalmem

map<const Shiny::ProfileNode *, size_t> ug::totalmem

§ UG_BUILD_HOST

const char* ug::UG_BUILD_HOST

Referenced by UGBuildHost().

§ UG_COMPILE_DATE

const char* ug::UG_COMPILE_DATE

Referenced by UGCompileDate().

§ UG_SVN_REVISION

const char* ug::UG_SVN_REVISION

Referenced by UGSvnRevision().

§ ugRefObjIdToVTKCellType

const int ug::ugRefObjIdToVTKCellType[]
Initial value:
Definition: file_io_vtu.cpp:41
Definition: file_io_vtu.cpp:43
Definition: file_io_vtu.cpp:52
Definition: file_io_vtu.cpp:50
Definition: file_io_vtu.cpp:49
Definition: file_io_vtu.cpp:54
Definition: file_io_vtu.cpp:45
Definition: file_io_vtu.cpp:53

§ useLua2VM

bool ug::useLua2VM =false

§ useLuaCompiler

bool ug::useLuaCompiler =false

§ VTKCellNames

const char* ug::VTKCellNames[]
Initial value:
= { "UNDEFINED",
"VERTEX",
"POLY_VERTEX",
"LINE",
"POLY_LINE",
"TRIANGLE",
"TRIANGLE_STRIP",
"POLYGON",
"PIXEL",
"QUAD",
"TETRA",
"VOXEL",
"HEXAHEDRON",
"WEDGE",
"PYRAMID",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"UNDEFINED",
"QUADRATIC_EDGE",
"QUADRATIC_TRIANGLE",
"QUADRATIC_QUAD",
"QUADRATIC_TETRA",
"QUADRATIC_HEXAHEDRON"}